我对给我们的代码感到非常困惑:
class KeyedWord
{
public:
KeyedWord(char* word); // TO BE IMPLEMENTED
char* getWord(); // TO BE IMPLEMENTED
char* getKey(); // TO BE IMPLEMENTED
~KeyedWord();
private:
char * _word;
char* _key;
};
void main(int argumentCount, char** arguments)
{
if (argumentCount <= 1)
{
std::cout << "No file name given as argument" << std::endl;
}
else
{
}
我很困惑因为:
如果main是程序的起源,我应该如何为main提供重载?
另外,当我尝试实现上面的一个函数时,我收到一个错误,告诉我有一个定义错误。这就是我想要的:
void KeyedWord::getWord()
{
return;
}
答案 0 :(得分:1)
您无法重载main
功能。
来自标准:
3.6.1主要功能[basic.start.main]
2 /实现不应预定义主函数。 此函数不应重载。它应具有类型
int
的返回类型,否则其类型是实现定义的。所有实现都应允许:
- ()返回
的函数int
和- 返回
的函数(int
char
,指向int
的指针)
你也宣布
class KeyedWord
{
public:
// ...
char* getWord(); // TO BE IMPLEMENTED
// ...
};
并将方法定义为
void KeyedWord::getWord() { ... }
// ^^^^
返回类型不正确...
答案 1 :(得分:0)
你可以使用void main(...),它只是不标准。顺便说一句,这是超载:
void func();
void func(int value);
你不能对主要功能这么做。