LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1115|回复: 1

奇怪的c++构造函数调用方式(例子)-谁能解释一下

[复制链接]
发表于 2006-1-15 05:31:51 | 显示全部楼层 |阅读模式
在c++中
class base {
   base( char *str ) {
   }
   ...
};

class inherit : public base {
public:
   inherit( char *str ) {
      ...
   }
}

int main() {
   inherit h("test");
   ...
}
以上程序编译通不过
Queue.cpp: In constructor `inherit::inherit(char*)':
Queue.cpp:14: error: no matching function for call to `base::base()'
Queue.cpp:6: note: candidates are: base::base(const base&)
Queue.cpp:8: note:                 base::base(char*)
(在从上到下的构造函数调用中基类部分必须要调用????)

而在c#中
public class base {
   public base( string str ) {
   }
   ...
}

public class inherit : base {
   public inherit( string str ) {
   }
   ...
}

class startup {
    static void main() {
       inherit h = new ( "test" );
    }
}
一切正常
发表于 2006-1-15 07:16:36 | 显示全部楼层
class base {
base( char *str ) {
}
...
};

class inherit : public base {
public:
inherit( char *str,char *strbase ):base(strbase)
{
...
}
}
因为你没有初始化基类
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表