- 博客(15)
- 收藏
- 关注
转载 输入输出运算符重载
#include<iostream>using namespace std;class Student{ public: Student(int x,string s) { num = x; name = s; } friend ostream &oper...
2018-06-12 06:04:43
284
转载 复数类运算符重载
成员函数:class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} Complex operator+(const Complex &c2); Complex operator-(const Comple...
2018-06-12 05:46:00
1846
转载 虚函数处理理解
将下面代码改编,让D:BB()变为B:BB()#include<iostream>using namespace std;class B{public : int a; B(){a=1;cout<<"B()"<<endl;BB();} ~B(){cout<<"~B()"<<endl;BB();} void BBB(
2018-05-29 06:27:32
220
转载 基类的构造函数和析构函数能否被继承
析构函数被继承过来,但是构造函数不能够继承,我们在子类里面只是”调用“基类的构造函数。#include <map> #include <list> using namespace std; class CTest { protected: CTest() { printf("construct CTest...
2018-05-29 06:07:54
2810
原创 继承的顺序
#include <iostream>using namespace std;class A{ public: int i; A(int I){i=I;} void print(){cout<<i;}}; class B:public A{public: };class C:public A{public: };class D:public B,pub...
2018-05-15 04:47:18
206
转载 常成员函数中静态成员可以改变
可以改变,原因是static成员不属于对象,可以用常函数改变 #include <iostream.h>class A{ public: static int i; int j; int fun() const{ i+=1; return i;}// int fun1() const{ j+=1; return j;} //该函数报错};...
2018-05-14 23:42:38
1635
原创 关于常成员函数对非常成员函数的调用问题
常成员函数不能调用非常成员函数:比如:#include<iostream>using namespace std;class A{ const void print(){cout<<fun();}};int fun(){ return 2;}int main(){ A.a; a.print(); return 0;}程序报错无法运行...
2018-05-14 23:26:48
5036
4
转载 c++中析构函数释放空间顺序问题
对象是由“底层向上”开始构造的,当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止。因为,构造函数一开始构造时,总是要调用它的基类的构造函数,然后才开始执行其构造函数体,调用直接基类构造函数时,如果无专门说明,就调用直接基类的默认构造函数。在对象析构时,其顺序正好相反。#include<iostream&...
2018-04-17 05:04:47
1777
转载 c++中深、浅拷贝的相关问题
浅拷贝和深拷贝 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。 深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新...
2018-04-17 04:50:19
187
转载 c++中a、b类相互调用
此问题参考一下大神提供的解决方案class A{public:void FunA1(){}void FuncA2(){}void FunA3(){b->funb1();}private:class B *b;};class B(){public:void funb1(){}void funb2(){ a->FunAa();}private:class...
2018-04-17 04:42:11
2249
原创 new、delete以及异常处理的相关举例
new一般用法:new 类型 【初值】比如:int *i=new int;int *j=new int(100);int *k=new int[3];delete一般用法:delete 【】指针变量比如:delete i;delete j;delete []k;简单来说,即为一个申请空间,一个释放空间,在不知数组长度,但又不想浪费空间一次申请特大空间,可以先计算输入的长度,再重新申请变量空...
2018-04-02 00:55:51
993
转载 返回引用以及在结构体外给结构体变量赋初值
int c;int &add(int a,int b){ c=a+b; return c;}int main(){ int &x=add(1,2); printf("%d\n",x); add(10,20)=100; printf("%d\n",x); printf("%d\n",c); return 0;...
2018-04-02 00:24:47
480
转载 可变参数的函数参考方案
可变参数的函数,写法如下:type Function(固定参数1,固定参数2,……固定参数n,…);可见,可变参数的函数有两种参数,一种是固定参数,一种是可变参数。固定参数就是一定要输入的参数,其个数确定,类型确定。一般的函数都是使用固定参数。可变参数用“…”来表示。其个数不固定。一个可变参数的函数,至少要有1个固定参数。因为可变参数正是依靠最后一个固定参数来确定自身首地址。可变参数函数使用va函...
2018-04-01 23:52:19
276
原创 main函数返回问题
首先,main()函数的返回值,在c99版本后,只允许为int型,return 0;正与之呼应,表示正常退出,返回值仅是给系统看的,若程序出错,这个值会相应改变,一般非0表示不正常时,根据才做系统不同而含义不同,但程序仍有运行。...
2018-03-19 23:49:02
393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人