gpt4 book ai didi

c++ - C++ 中的循环包含 - 再次

转载 作者:行者123 更新时间:2023-11-27 23:15:56 26 4
gpt4 key购买 nike

main.cpp

#include "Test1.h"
#include "Test2.h"

int main(){
Test1 t1;
Test2 t2;

t1.process(t2);
t2.process(t1);

}

Test1.h

#ifndef TEST1
#define TEST1

#include "Test2.h"

class Test1 {
public:
void process(const Test2& t) {};
};


#endif // !TEST1

Test2.h

#ifndef TEST2
#define TEST2

#include "Test1.h"

class Test2 {
public:
void process(const Test1& t) {};
};


#endif // !TEST2

VS2012 说:

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2143: syntax error : missing ',' before '&'
error C2664: 'Test2::process' : cannot convert parameter 1 from 'Test1' to 'const int'

我很确定这又是循环包含问题(我偶尔遇到过),但这次我不确定为什么不能编译。

注意:这些类只依赖于彼此的引用,这些引用的大小是已知的。是不是因为包含防护 (#ifndef),使得其中一个测试 header 将另一个 header 包含为空文件?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com