这是我的main.cpp
#include <iostream>
using namespace std;
#include "test.h"
void main()
{
Solution aa;
aa.aaa();
cin.get();
}
这是我的test.h
#pragma once
class Solution {
public:
void aaa() {};
};
这是我的test.cpp
#include <iostream>
using namespace std;
class Solution {
public:
void aaa() {
cout << "aaaaa" << endl;
};
};
当我运行c ++代码时,它什么也没显示。谁能告诉我为什么?
答案 0 :(得分:8)
您的id
声明并定义了一个#something a:hover
类,其中test.h
类方法绝对没有任何内容。
Solution
请参阅aaa()
方法无效。
你的 void aaa() {};
调用了这种方法,绝对没有。
最终结果:没有发生任何事情,正如所料。
你碰巧有一个aaa()
碰巧声明并定义了自己的同名类。至少,这是未定义的行为,我会指责并嘲笑任何C ++编译器+链接器,它们认为将main()
和test.cpp
链接在一起没有任何问题。
答案 1 :(得分:1)
在test.h中:
void aaa() {};
请注意,在()之后放置空括号而不是分号。如果要编写函数声明,只需编写函数名称和参数,而不是括号。现在编译器认为你想编写一个什么都不做的函数。 (我很惊讶这并没有导致链接错误)
答案 2 :(得分:1)
您的test.h
和test.cpp
文件未正确实施。他们看起来应该更像这样:
test.h
#pragma once
class Solution {
public:
void aaa();
};
TEST.CPP
#include "test.h"
#include <iostream>
using namespace std;
void Solution::aaa() {
cout << "aaaaa" << endl;
}