C ++自定义用户定义主?

时间:2013-09-20 09:07:06

标签: c++ main

我对给我们的代码感到非常困惑:

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;
}

2 个答案:

答案 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);

你不能对主要功能这么做。