首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数重载的有关问题

2012-02-22 
函数重载的问题哪位帮忙测试下,包括编译错误等,给个结果class A{public:func() { cout A endl}}c

函数重载的问题
哪位帮忙测试下,包括编译错误等,给个结果

class A
{
public:
  func() { cout << 'A' << endl;}
}

class B : public A
{
public:
  func(char *p) { cout << p << endl;}
}

class C :public A
{
public:
  func() { cout << 'C' << endl; }
  func(char *p) { cout << p << endl; }
}

main()
{
  A a, *pa;
  B b;
  C c;
   
  a.func();
  b.func();
  c.func();
   
  b.func("BB");
  c.func("CC");
   
  pa = &b;
  pa->func();
  pa->func("BBB");
   
  pa = &c;
  pa->func();
  pa->func("CCC");
}


[解决办法]

C/C++ code
#include <iostream>using namespace std;class A{public:    void func() { cout << 'A' << endl;}};class B : public A{public:    void func(char *p) { cout << p << endl;}};class C :public A{public:    void func() { cout << 'C' << endl; }    void func(char *p) { cout << p << endl; }};int main(){    A a, *pa;    B b;    C c;       a.func();    //b.func(); // there is no func() defined in class B    c.func();       b.func("BB");    c.func("CC");       pa = &b;    pa->func();    //pa->func("BBB"); //class A doesn't have a definition of func(char*)       pa = &c;    pa->func();    //pa->func("CCC"); // class A doesn't have a definition of func(char*)    return 0;}
[解决办法]
C/C++ code
错误还真不少!CSDN21.cpp:7: ISO C++ forbids declaration of `func' with no typeCSDN21.cpp:10: semicolon missing after declaration of `A'CSDN21.cpp: In member function `int A::func()':CSDN21.cpp:7: parse error before `:' tokenCSDN21.cpp: At global scope:CSDN21.cpp:13: ISO C++ forbids declaration of `func' with no typeCSDN21.cpp:16: semicolon missing after declaration of `B'CSDN21.cpp: In member function `int B::func(char*)':CSDN21.cpp:13: parse error before `:' tokenCSDN21.cpp: At global scope:CSDN21.cpp:19: ISO C++ forbids declaration of `func' with no typeCSDN21.cpp:20: ISO C++ forbids declaration of `func' with no typeCSDN21.cpp:23: semicolon missing after declaration of `C'CSDN21.cpp: In member function `int C::func()':CSDN21.cpp:19: parse error before `int'CSDN21.cpp: In member function `int C::func(char*)':CSDN21.cpp:20: parse error before `int'CSDN21.cpp: At global scope:CSDN21.cpp:24: ISO C++ forbids defining types within return typeCSDN21.cpp:24: extraneous `int' ignoredCSDN21.cpp:24: two or more data types in declaration of `main'CSDN21.cpp:24: two or more data types in declaration of `main'CSDN21.cpp:24: `main' must return `int'CSDN21.cpp:24: semicolon missing after declaration of `class A'CSDN21.cpp: In function `int main()':CSDN21.cpp:30: no matching function for call to `B::func()'CSDN21.cpp:13: candidates are: int B::func(char*)CSDN21.cpp:38: no matching function for call to `A::func(const char[4])'CSDN21.cpp:7: candidates are: int A::func()CSDN21.cpp:42: no matching function for call to `A::func(const char[4])'CSDN21.cpp:7: candidates are: int A::func() 

热点排行