C++面向对象程序设计
beautiful_Anne
这个作者很懒,什么都没留下…
展开
-
09哪来的输出【析构】+11Big&Base封闭类【封闭类构造函数添加初始化列表】+12指针哪来的【const】
析构函数:#include <iostream>using namespace std;class A { public: int i; A(int x) { i = x; }// 在此处补充你的代码 ~A() { cout<<i<<endl; }};int main(){ A a(1); A * pa = new A(2); delete pa; return 0;原创 2022-04-06 17:31:34 · 142 阅读 · 0 评论 -
08超简单的复数类【对对象赋值】
总结:为什么可以直接对对象赋值? -->赋值运算符重载!! 用拷贝构造函数也可以题目+答案:#include <iostream>#include <cstring>#include <cstdlib>using namespace std;class Complex {private: double r,i;public: void Print() { cout << r << "+" &l原创 2022-04-05 21:35:20 · 198 阅读 · 0 评论 -
07返回什么才好呢 【对成员函数赋值+返回类的引用】
#include using namespace std;class A {public:int val;A(int n) //构造函数{ val=n;}A() //缺省构造函数{ val=123; //否则会默认val=0}A& GetObj() //这里写int&是不行的{ return *this; //this是地址值,*是取内容}};int main(){int原创 2022-04-05 21:06:59 · 170 阅读 · 0 评论 -
06奇怪的类复制【三种构造函数+拷贝构造函数与运算符重载的区别】
在我反复试验后,得出以下结论:这两个的区别就在于:一.赋值运算符重载含义:将对象赋给一个已有对象。注意:一定要是已有对象。也就是说,要这样写才会调用赋值运算符重载: Sample b; b=a;二.拷贝构造函数含义:创建一个新对象。注意:一定要是新对象。也就是说,要这样写,会调用拷贝构造函数:Sample b=a; 当然,还有在参数是对象、函数返回类型是对象的情况下也会调用。结果图:可以对比课堂笔记(Typora)看。题目+答案:#include using namespace std原创 2022-04-05 20:43:47 · 205 阅读 · 0 评论 -
05学生信息处理程序【输入问题】
注意:【输入问题】cin遇到空格、回车会结束。难点:输入的一行信息,会全被当作字符串。如何用逗号隔开。知识点:cin>>a; 敲下空格后再用cin.get()吸收缓冲区的回车,然后就可以用cin.getlinecin.getline()用法:cin.getlin(a,20,‘,’);可以用一个ch把逗号吃掉【成员函数】成员函数可以修改成员变量。由于题目要求成员变量是private,所以我直接在类内,用成员函数修改。题目+答案:#include #include #in原创 2022-04-05 13:20:06 · 172 阅读 · 0 评论 -
04神秘的数组初始化【指针数组】
题目:#include using namespace std;int main(){int * a[] = {<???>};*a[2] = 123;a[3][5] = 456;if(! a[0] ) { cout << * a[2] << "," << a[3][5];}return 0;}答案:NULL,NULL,new int,new int(6)① int *a[] 是一个指针数组,每一个数组元素指向一个地址,用ne原创 2022-04-05 11:57:46 · 201 阅读 · 0 评论 -
03好怪异的返回值【引用类型作为函数返回值】
题目:#include using namespace std;<?> getElement(int * a, int i){return a[i];}int main(){int a[] = {1,2,3};getElement(a,1) = 10;cout << a[1] ;return 0;}答案:int&通过函数返回引用这种机制,可以对函数进行赋值,将函数放在赋值语句的左边。不加&会报错,不能用getElement(a,1)=1原创 2022-04-05 11:46:58 · 184 阅读 · 0 评论 -
002:难一点的swap 【指针与引用】
程序设计与算法(三)C++面向对象程序设计 慕课,刷题网址:http://cxsjsxmooc.openjudge.cn/2022t3spring/002/submit/void swap(A& a,A& b)题目:#include using namespace std;void swap(// 在此处补充你的代码){int * tmp = a;a = b;b = tmp;}int main(){int a = 3,b = 5;int * pa = &原创 2022-04-05 11:29:59 · 1053 阅读 · 0 评论