我在代码的顶部包含了行using namespace std;
。现在考虑声明int a,b,c;
。上面的代码是否等同于int std::a,std::b,std::c;
?如果是这样,请考虑以下示例:
如果我在行Hi
之后声明(定义)了一个名称空间using namespace std;
。
Hi
是std
的一部分,即...,我应该使用Hi
作为std::Hi
吗?
我是初学者。
答案 0 :(得分:10)
上面的代码相当于
int std::a,std::b,std::c;
没有。 using namespace
语句意味着您的代码可以使用该命名空间的成员,而无需使用命名空间的名称限定它们。
例如,假设您有#include <string>
语句后跟using namespace std;
语句。然后,您可以将std::string
类称为string
,而不是{。}}。
或者,假设您有#include <iostream>
语句后跟using namespace std;
语句。然后,您可以分别将std::cin
和std::cout
个对象称为cin
和cout
。
简单地using
命名空间不会向该命名空间添加任何内容。这是一种将指定命名空间中的内容带入调用命名空间的方法。
如果我在行
的一部分Hi
之后声明(定义)了一个名称空间using namespace std;
。Hi
是std
没有。为此,Hi
必须在namespace std
块内声明,例如:
namespace std {
namespace Hi {
...
}
}
但是,that is undefined behavior (except in special cases),因为通常不允许您向std
命名空间添加内容。
答案 1 :(得分:1)
不,不需要std
。您声明的变量不在std
命名空间中。 cout
通常包含公共语言工具,例如cin
,string
,private func showChildView() {
let childViewController = UIViewController()
let parentViewController = self
childViewController.view.backgroundColor = .brown
parentViewController.addChildViewController(childViewController)
let parentView = parentViewController.view!
let childView = childViewController.view!
//For programatically created view set the translatesAutoresizingMaskIntoConstraints = false
childView.translatesAutoresizingMaskIntoConstraints = false
parentView.addSubview(childView)
childView.centerXAnchor.constraint(equalTo: parentView.centerXAnchor).isActive = true
childView.centerYAnchor.constraint(equalTo: parentView.centerYAnchor).isActive = true
childView.widthAnchor.constraint(equalToConstant: 100).isActive = true
childView.heightAnchor.constraint(equalToConstant: 200).isActive = true
childViewController.didMove(toParentViewController: parentViewController)
}
等。