使用函数和声明顺序返回其他类变量 我尝试做一个C++类函数,它可以返回其他类值。如果首先定义了类A,代码就可以工作,但是我有更多的代码,我不想弄乱它们。我想我需要某种A类的转发声明
我需要什么样的前瞻性声明才能完成这项工作?我所有的代码都在一个文件中。如果我正确地将我的类分割成多个文件并将它们包含到项目中,这个问题会消失吗?或者这对VC++编译器有什么影响 下面是半伪代码使用函数和声明顺序返回其他类变量 我尝试做一个C++类函数,它可以返回其他类值。如果首先定义了类A,代码就可以工作,但是我有更多的代码,我不想弄乱它们。我想我需要某种A类的转发声明,c++,visual-c++,forward-declaration,C++,Visual C++,Forward Declaration,我需要什么样的前瞻性声明才能完成这项工作?我所有的代码都在一个文件中。如果我正确地将我的类分割成多个文件并将它们包含到项目中,这个问题会消失吗?或者这对VC++编译器有什么影响 下面是半伪代码 // forward declaration class A; // class deifinitions class B { private: int testvalue; public: void settestva
// forward declaration
class A;
// class deifinitions
class B {
private:
int testvalue;
public:
void settestvalue(A &Aobj);
}
void B::settestvalue(A &Aobj) {
testvalue = Aobj.settestvalue();
}
class A {
private:
int test = 10;
public:
int testvalue();
};
int A::testvalue() {
return test;
}
// mainloop
A Aobj;
B Bobj;
Bobj.settestvalue (Aobj);
只要把B的成员函数的定义放在A的类定义之后。只要把
void B::settestvalue(A&Aobj)
的定义放在类A
的定义之后。得到一些其他类,过一会儿,排序就不可能了。还是我误解了这是一个很好的提示,您不应该将所有内容都放在一个文件中。制作单独的头文件和实现文件。那么VC++编译器对代码的处理是否有所不同?它会按申报顺序排序吗?我想我需要看看这个。谢谢。@John:如果订购变得不可能,那么你应该重新设计是一个好迹象,因为你显然创建了面向对象的意大利面代码版本。效果很好!简单!谢谢