鱼C论坛

 找回密码
 立即注册
查看: 1729|回复: 1

小白求助 继承中的构造函数

[复制链接]
发表于 2020-3-27 14:50:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "iostream"
using std::endl;
using std::cout;
using std::cin;

class Object
{
protected:
        int a;
        int b;
public:
        Object(int a, int b)
        {
                this->a = a;
                this->b = b;
                cout << "Object 构造执行" << endl;
        }
public:
        ~Object()
        {
                cout << "Object 析构执行" << endl;
        }
};

class Parent :public Object
{
protected:
        char* p;
public:
        Parent(char* p) :Object(1, 2)
        {
                this->p = p;
                cout << "父类的构造函数" << p << endl;
        }
public:
        ~Parent()
        {
                cout << "父类的析构函数" << p << endl;
        }
public:
        void printParent()
        {
                cout << "我是父亲" << endl;
        }
};

class Child :public Parent
{
protected:
        char* myp;
        Object obj1;
        Object obj2;
public:
        Child(char* p) :Parent(p), obj1(3, 4), obj2(5, 6)
        {
                this->myp = p;
                cout << "子类构造函数" << myp << endl;
        }
public:
        ~Child()
        {
                cout << "子类析构函数" << myp << endl;
        }
public:
        void printChild()
        {
                cout << "我是儿子" << endl;
        }
};

void objPlay()
{
        Child c("abdbnkhg");//问题 这里显示出错 我这代码照视频打的 视频上运行通过 我却运行不了 那个图片显示编译后的错误
}

void main()
{
        objPlay();
        system("pause");
}

继承中的构造函数

继承中的构造函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-27 15:03:33 | 显示全部楼层
因为你的构造函数中的形参是一个char类型的指针,而你传递过去的"abdbnkhg"是一个字符串常量,这种情况下,对于有的编译器会报出warnring,但是有的编译器则会报错。
你把这个字符串拿出来赋值给一个char数组,一般就不会报错了,那样就不是字符串常量而是字符变量数组了,而变量数组则可以作为char指针进行传参。
void objPlay()
{
    char a[]="abdbnkhg";
    Child c(a);//问题 这里显示出错 我这代码照视频打的 视频上运行通过 我却运行不了 那个图片显示编译后的错误
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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