vc6 0-关于继承的构造函数的问题

问题描述

关于继承的构造函数的问题

代码如下:
#include
#include
using namespace std;

class A
{

public:
string name;
A (string);
};
class B : public A
{
public:
B ();
};
A::A (string name = "")
{
this->name = name;
}
B::B ()
{
;
}
int main()
{
B b;
return 0;
}
在vs2010没有任何问题,但在vc6.0里就会出现错误,提示:“没有A合适的构造函数”。
请问该怎么解决呀?
【用的是公司的编译器,我自己的当然是2010了】

解决方案

在声明时指定默认参数值,同时,把实现文件里的默认值去掉。
另外,建议你在子类的构造函数初始化列表里显示调用基类的构造函数
1、
class A
{

public:
string name;
A (string);
};
改为
class A
{

public:
string name;
A (string name = "")
};

2、
A::A (string name = "")
{
this->name = name;
}
改为
A::A (string name)
{
this->name = name;
}
3、
B::B ()
{
;
}
改为
B::B () : A()
{
;
}

时间: 2024-09-02 10:28:19

vc6 0-关于继承的构造函数的问题的相关文章

用VC6.0编写Word 2007插件

简介 微软在06年底推出了两个重量级的产品:Vista和Office 2007.在Office2007中 使用了新的UI方式.微软大力鼓吹这种叫做Ribbon的新的UI将会给使用Office的人带来更大 的便利性.在Office插件方面,微软保持了对原有版本 (office 2K.XP.03) 的兼容性,都 被放到一个叫做Add-In的Tab里面,如下图所示. 不过样子比较难 看,到底有没有办法让界面做得更漂亮一点呢?答案是肯定的.本文假设读者已经阅读并理 解了我的上一篇文章: "用VC6.0编

使用VC6.0实现窗口的任意分割

一.关于CSplitterWnd类 我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割. 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类.CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充.当窗口被切分后用户可以使用鼠标移动切分条来调整窗口的相对尺寸.虽然VC6.0支持从AppWizard中创建

c语言-C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0

问题描述 C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0 代码如下, #include "winsock2.h" #include "Winsnmp.h" #include 这里是string以下都要用 < 和 > 括起来(不知为何不显示=,=) #include vector #include algorithm #include iostream #pragma comment(lib,"

VC6.0转VS2010 宏DECLARE_MESSAGE_MAP()遇到的问题

问题描述 在VC6.0中:#defineDECLARE_MESSAGE_MAP()private:staticconstAFX_MSGMAP_ENTRY_messageEntries[];protected:staticAFX_DATAconstAFX_MSGMAPmessageMap;staticconstAFX_MSGMAP*PASCAL_GetBaseMessageMap();virtualconstAFX_MSGMAP*GetMessageMap()const;可在VS2010:#def

VC项目配置基础 (VC6.0 和VC2005)

一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/C++ à Preprocessor definitions VC2005 中: 项目属性 à 配置属性 à C/C++ à 预处理器定义   WIN32 :指明是 Window 32 位系统的编译器,一般用作平台识别. _MBCS/_UNICODE :指明该工程使用的字符集(多字节字符集 /UNICODE ). 在 VC6.0 的 "Project Setting à C/C++ à Project Opti

为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对

问题描述 为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对 编程挑战试了几次都是结果不对,但是我在vc6.0编译后运行的结果是正确的啊! 解决方案 这个有很多原因,比如说,你的程序本身有bug,虽然可以通过某些测试用例,但是oj使用的是另外的用例,没有通过,或者是你的程序在运行时间和使用内存上不符合要求,或者你的程序输入输出部分有问题,使得oj程序没法传递正确的测试用例,以及获取你的输出.还可能你使用了额外的库,而oj没有,你的编译器和oj的不同,造成编译上的细微

111-我WIN8为什么还是不能用vc6.0

问题描述 我WIN8为什么还是不能用vc6.0 我WIN8为什么还是不能用vc6.0 解决方案 VC++6.0用兼容模式还是不能运行,参见http://jingyan.baidu.com/article/09ea3ede27428ac0aede39a6.html 解决方案二: 首先你的VC6.0要正,然后才是解决兼容性问题 推荐下载这个http://download.csdn.net/album/detail/639 兼容性问题http://download.csdn.net/detail/ca

vc6.0如何在工程内调用另一个工程

问题描述 vc6.0如何在工程内调用另一个工程 就是说我有两个独立的工程,一个是系统界面软件,一个是接收数据的软件.我想要在系统界面中点击一个按钮打开接收数据的软件,并且在接收完成后再系统界面上显示下载完成.看到网上虽然可以在系统界面软件按钮处用Winexec或者ShellExecuteEx打开接收软件进行接收,但是不知道接收软件要怎么在下载完成后给系统界面一个返回值,用来执行显示下载完成,要在系统界面显示下载完成.还有一个办法就是合并,不过不知道具体怎么操作,是把Source Files,He

jmetal 平台-在vc6.0 下jmetal 多目标平台 使用问题

问题描述 在vc6.0 下jmetal 多目标平台 使用问题 怎么使用jmetal 多目标平台呢?把它的各个包都放在VC6.0的哪里啊? 解决方案 http://tieba.baidu.com/p/1712883826