【发布时间】:2014-09-25 11:56:40
【问题描述】:
我正在按照一个简单的教程来创建一个 DLL。 在这个过程中,我对 cpp 文件中的一些符号感到有些困惑
dll.h - the header file
#blablablabla
namespace TutTest {
class TutTestClass { //for very complicated math!!!
public:
static dll_API double Add(double a, double b);
static dll_API double Subtract(double a, double b);
static dll_API double Multiply(double a, double b);
};
}
dll.cpp - the cpp file :)
#blablablabla include and such
namespace TutTest{
double TutTest::Add(double a, double b){
return a + b;
}
double TutTestClass::Subtract(double a, double b){
return a - b;
}
double TutTest::TutTestClass::Multiply(double a, double b){
return a * b;
}
}
在上面的 .cpp 文件中,默认符号(在本教程中使用)是“double TutTest::...”,但是我使用它并注意到“TutTestClass::”和“TutTest:: TutTestClass::" 似乎有效,因为 IDE 不会抛出任何错误/警告。
所以我想知道,这 3 个符号的意思是一样的吗?它们是等价的吗? 如果是,除了个人编码风格之外,这些符号之间有什么区别吗? 还是这些符号的含义不同?
【问题讨论】:
-
它不应该被编译,因为
TutTest::Add(...是一个错误 -
这真的与符号有关吗?也许您的意思是名称空间和范围?你不会用符号做任何事情。您使用一个,非常标准。
-
如果你有一个
TutTest命名空间,为什么要在TutTestCClass中命名这个类?对我来说似乎很愚蠢。只需将其命名为Class或其他名称。 -
@luk32 你可能是对的,这只是反映了我的肤浅知识:p
-
@JohnDibling 是的,我注意到在第二次玩它时。将其重命名为 TTestClass。如果你是因为类名长而问的,那这几乎是无关紧要的,因为它只是一个测试:p,我也想使用更多的类