2014-10-28 24 views
-2

我只是好奇,但有没有办法让它,所以你不必在功能之前放一个类名?这里有一个例子:更简单的方法来实现.cpp文件

HelloWorld.h

class HelloWorld{ 
    HellowWorld(); 
}; 

HelloWorld.cpp

#include "HellowWorld.h" 

HelloWorld::HelloWorld(){} 

我不知道是否有一种方法能够有.cpp文件如下所示。

HelloWorld.cpp <新版本

#include "HellowWorld.h" 

HelloWorld(){} 
+0

是的,你可以有不属于任何类的成员函数,但你需要给非构造函数/析构函数返回类型。 (例如'void HelloWorld(){}') – genisage 2014-10-28 23:09:55

+0

是的,如果使用类没有意义,则可以使用免费函数。但如果它在课堂上,则需要指定。你可以很容易地在类之外有一个叫做HelloWorld的函数(或者类的任何成员函数)。 – chris 2014-10-28 23:10:14

+0

OP明确指定条件:class HelloWorld { HellowWorld(); }; – 4pie0 2014-10-28 23:11:12

回答

0

函数不必在类中定义,只声明。

我更喜欢在一个单独的文件中定义方法内容。这减少了其他文件编译的机会,因为我更改了函数的内容。

Hello.hpp:

class HelloWorld 
    { 
    HelloWorld(); // Declares the constructor 
    }; 

HELLO.CPP:

#include "Hello.hpp" 
#include <stdio> 

HelloWorld :: 
HelloWorld() 
{ 
    std::cout << "Hello World\n"; 
} 

现在我可以做出改变的HelloWorld构造函数,而不是担心改变头文件。因为如果头文件改变,所有包含Hello.hpp的源文件都需要重新编译。

编辑1:减少“的HelloWorld ::”
您可以通过将using语句删除HelloWorld::部分:

#include "Hello.hpp" 
#include <stdio> 

using HelloWorld; 

HelloWorld() 
{ 
    std::cout << "Hello Mars\n"; 
} 
+0

那么,cpp文件里面的实现与我提供的不同呢?我很困惑。 – 2014-10-28 23:28:37

+0

你回答OP的问题吗? – 4pie0 2014-10-28 23:29:58

+0

@AB_:我希望我能回答OP的问题,但OP的问题有些含糊不清:构造函数,方法实现,范围解析操作符或独立函数。 – 2014-10-28 23:35:17

0

如果这是一个类的成员方法则没有,有没有办法(除了不切实际的展示,只有魔法一样不要放;在.H但完成.cpp中的类定义以避免类规范。

相关问题