【发布时间】:2010-11-06 21:23:44
【问题描述】:
我试图用 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.");
}
编译器在倒数第二行抱怨找不到函数 A(char*),因为它在类内部,并且构造函数与函数同名。我可以在外面写另一个函数,比如:
ousideA(char* D) {
A(D);
}
然后在 A::C 内部调用 outsideA,但这似乎是一个愚蠢的问题解决方案。有谁知道更合适的方法来解决这个问题?
【问题讨论】:
标签: c++ class constructor