为什么我的c ++代码不能显示cout字符串

时间:2016-06-15 00:24:42

标签: c++

这是我的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 ++代码时,它什么也没显示。谁能告诉我为什么?

3 个答案:

答案 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.htest.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;
}