Xym*_*ech 16 c++ constructor class
我试图用c ++编写一个类,我遇到了一个相当奇怪的问题:在一个与类同名的类中调用外部函数.这有点令人困惑,所以这是一个例子:
void A(char* D) {
printf(D);
}
class A
{
public:
A(int B);
void C();
};
A::A(int B) {
// something here
}
void A::C() {
A("Hello, World.");
}
Run Code Online (Sandbox Code Playgroud)
编译器在倒数第二行抱怨它找不到函数A(char*),因为它在类中,并且构造函数与函数同名.我可以在外面写另一个函数,比如:
ousideA(char* D) {
A(D);
}
Run Code Online (Sandbox Code Playgroud)
然后在A :: C中调用outsideA,但这似乎是解决问题的愚蠢方法.有人知道更合适的方法来解决这个问题吗?
Eva*_*ran 42
::A("Hello, world.");
Run Code Online (Sandbox Code Playgroud)
应该工作正常.基本上它是说"使用A在全局命名空间中找到的"
使用范围解析运算符 ::从全局范围访问名称:
void A::C() {
::A("Hello, world.");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18211 次 |
| 最近记录: |