当前位置: 首页 > news >正文

C++ 2024-4-1 作业

 

#include <iostream>
using namespace std;class A
{
public:int a;A(int a):a(a){cout<<"A的有参构造"<<endl;}
};
class B:virtual public A
{
public:int b;B(int a,int b):A(a),b(b){cout<<"B的有参构造"<<endl;}
};
class C:virtual public A
{
public:int c;C(int a,int c):A(a),c(c){cout<<"C的有参构造"<<endl;}
};
//汇集子类
class D:public B,public C
{
public:int d;D(int a,int b,int c,int d):A(a),B(a,b),C(a,c),d(d){cout<<"D的有参构造"<<endl;}void show(){cout<<"d="<<d<<endl;cout<<"c="<<c<<endl;cout<<"b="<<b<<endl;cout<<"a="<<a<<endl;}
};
int main()
{//实例化汇集子类D的类对象D d1(10,20,30,40);d1.show();d1.a = 90;d1.show();//对于公共基类继承加上virual后,在汇集子类中只能找到一个属性ad1.B::A::a = 80;d1.C::A::a = 80;d1.show();return 0;
}

 

 

#include <iostream>using namespace std;class Father
{int *p;const string name;
public:Father():p(new int),name("张三"){cout<<"Father的无参构造"<<endl;}//Father的无参构造Father(int value):p(new int(value)),name("张三"){cout<<"Father的有参构造"<<endl;}Father(const Father &other):p(new int(*(other.p))),name("张三"){cout<<"Father的拷贝构造"<<endl;}Father &operator=(const Father &other){this->p = other.p;//浅拷贝*(this->p) = *(other.p);//深拷贝cout<<"Father的拷贝赋值"<<endl;return *this;}~Father(){delete p;cout<<"Father的析构函数"<<endl;}void show(){cout<<"p的指向"<<p<<endl;cout<<"*p="<<*p<<endl;cout<<"name = "<<name<<endl;}
};
class Son:public Father
{int *age;
public:Son(){};//Son的无参构造;Son(int age):Father(),age(new int(age)){cout<<"Son的有参构造"<<endl;}Son(int age,int value):Father(value),age(new int(age)){cout<<"Son的有参构造"<<endl;}using Father::Father;//使用父类的构造函数Son(const Son &other):Father(other),age(new int(*(other.age))){cout<<"Son的拷贝构造"<<endl;}Son &operator=(const Son &other){*(this->age) = *(other.age);Father::operator=(other);return *this;}//Son的拷贝赋值函数~Son(){delete  age;cout<<"Son的析构函数"<<endl;}
};
int main()
{Son s1(20,30);s1.show();Son s2 = s1;s2.show();return 0;
}

 

 

http://www.lryc.cn/news/331335.html

相关文章:

  • 【滑动窗口】Leetcode 串联所有单词的子串
  • golang channel实践代码及注意事项
  • 面试题:RabbitMQ 消息队列中间件
  • wpf中引用自定义字体
  • 高效准确!指甲剪盖片视觉检测技术解密
  • 分布式IO模块PLC扩展模拟量模块
  • Qt事件系统
  • C++STL--排序算法
  • CEF的了解
  • 基于OrangePi Zero2的智能家居项目(开发阶段)
  • 数据结构记录
  • 从零到一:基于 K3s 快速搭建本地化 kubeflow AI 机器学习平台
  • kettle使用MD5加密增量获取接口数据
  • PS入门|黑白色的图标怎么抠成透明背景
  • android 14 apexd分析(2)apexd 启动
  • 微信小程序怎么制作?制作一个微信小程序需要多少钱?
  • WPS二次开发专题:如何获取应用签名SHA256值
  • Flink SQL系列之:基于Flink SQL查询Topic中序列化的Debezium数据格式字段
  • 【WPF应用30】WPF中的ListBox控件详解
  • Chatgpt掘金之旅—有爱AI商业实战篇(二)
  • AGI时代,LLM可以在AutoML哪些环节进行增强?
  • 算法练习—day1
  • 关于ansible的模块 ③
  • Spring Boot--文件上传和下载
  • hexo博客7:构建简单的多层安全防御体系
  • 《捕鱼_ue4-5输出带技能的透明通道素材到AE步骤》
  • (免费分享)基于微信小程序自助停取车收费系统
  • Vue3_2024_7天【回顾上篇watch常见的后两种场景】___续
  • Gemini即将收费,GPT无需注册?GPT3.5白嫖和升级教程
  • 【协议篇:Http与Https】