我想用 C++(非 clr)重新定义一个类。这就是原因
class BabyClass
{
public:
string Name;
int getSiblings(MainClass &mclass)
{
int c = mclass.size();
for(int i=c;i>0;--i)
{
if(mclass.at(i).Name != Name)
cout << mclass.at(i).Name;
}
}
}
class MainClass
{
public:
vector<BabyClass> babies;
}
当然这不是我的真实代码,但我想您可以看出问题所在。 我希望我的婴儿类能够访问主类,问题是在编译时它不知道 MainClass 存在,所以要正常修复它我会把 MainClass 放在 BabyClass 之上,但是如果我这样做我可以'没有 BabyClass 的 vector ,因为编译器不知道 BabyClass。 我知道使用函数你可以做类似的事情
int function(string hello);
后来
int function(string hello)
{
code
}
或者使用虚函数等等。知道我将如何在类里面做到这一点吗?谢谢。
顺便说一下,我知道有人会问这是否真的有必要,所以是的,有必要。
最佳答案
尝试这种前向声明 MainClass
的安排。
class MainClass;
class BabyClass
{
public:
string Name;
int getSiblings(MainClass &mclass);
};
class MainClass
{
public:
vector<BabyClass> babies;
};
int BabyClass::getSiblings(MainClass &mclass)
{
// your code which uses mclass
return 0;
}
int main(){}
顺便说一句,这不叫redefine
。技术是前向声明
然后定义它。
关于C++重新定义一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698336/