
c++
ID__10086
这个作者很懒,什么都没留下…
展开
-
如何检验new已经动态分配空间
判断new成功分配空间原创 2022-01-05 11:46:05 · 660 阅读 · 0 评论 -
new动态分配空间,delete释放
new动态分配原创 2022-01-05 11:43:39 · 1090 阅读 · 0 评论 -
强制类型转化
强制类型转化定义:把一个int型转化为double型:int i=10;double x=(double)i;或,double x=double(i);原创 2022-01-05 11:38:47 · 202 阅读 · 0 评论 -
标识符定义
域标识符定义:为了解决全局的同名变量,在同名变量所在的作用域内,可以共同执行,可用“::”对被隐藏的同名全局变量进行访问。全局变量:在域外定义的同名函数局部变量:域内定义的同名函数代码: #include<iostream> using namespace std; int a; int main() { double a=3.2; ::a=3; cout<<"local a= "&.原创 2022-01-05 11:37:32 · 287 阅读 · 0 评论 -
函数重载判断依据
函数重载定义:两个函数(不带默认值)共用一个函数名,但形参个数或类型不同,编译器根据形参与实参的类型或个数的最佳匹配,自动确定调用函数。(1)传统c语言中:同一作用域内,函数名必须唯一,不允许出现同名的函数 (特别在类的成员函数中,成员函数的名称与类的函数名要区分开来)。(2)c++:用户可以函数重载,同一作用域内,函数参数的类型不同,或参数的个数不同,或者两者都不同 可以有俩个或俩个以上函数使用相同的函数名 但是,如果参数个数相同且参数类型相同,只是返回的类型不.原创 2022-01-05 11:36:01 · 1579 阅读 · 0 评论 -
【默认参数函数定义】
默认参数值函数定义:(1)一般,实参个数和形参个数相同,但在c++中形参个数与实参个数可以不同。在说明函数原型或定义时,定义为一个或多个形参指定默认值,以后在调用此函数时,若忽略其中某一个实参,c++主动以默认值作为相应参数的值。如: #include<iostream> using namespace std; void A(int x=10,int y=5){ //函数原型 cout<<x<<" "<.原创 2022-01-05 11:33:12 · 813 阅读 · 0 评论 -
【inline函数】
inline定义:(1)第一次被调用之前,必须完整定义,否则编译器不知道应该插入什么代码。(2)内联函数内部一般不能含有复杂的控制语句:for和switch等。(3)空间换时间,规模小(1~5句)且使用频繁,可以大大提高运行速度。(4)宏定义是简单的字符置换,用内联函数可以消除它的不确定性。#include<iostream> using namespace std;#define double(x) x*2inline int double_inline(int x);i.原创 2022-01-05 11:31:01 · 99 阅读 · 0 评论 -
【void说明】
Void定义:通常表示无值,但将void作为指针的类型时,它表示不确定的值。任何类型的指针值都可以赋给void类型的指针变量。(1)不能申明void 类型的变量,但可以申明void 类型的指针。(2)void型指针是通用型指针,是指它可以接受任何类型的指针的赋值,但对于已获值的void型指针,对他在进行处理(输入或传递指针值时),则必须再进行显式类型转化,否则就会出错。#include<iostream>using namespace std;int main(){ .原创 2022-01-05 11:29:19 · 483 阅读 · 0 评论 -
虚基类解决多继承同名二义性
之前提过关于公有多继承存在同名二义性问题,所以c++才会有虚基类来解决这类的问题。虚基类继承,使得基类的多个虚基继承派生类中的同名成员,存在于相同的地址,也就是同一个东西,所以当他们共同有一个派生类时,这个派生类所继承的不是俩个同名成员,其实只有一个,故不发生二义性问题构造调用顺序:先调用base(调用直接基类时,直接基类是由base继承过来),接着根据base3的继承申明,依次调用基类,从结果可知确实如此;析构顺序相反#include<iostream>using namespac.原创 2022-01-05 11:24:35 · 558 阅读 · 0 评论 -
多继承同名成员二义性
多继承中,最远派生类的多个直接继承都有最初基类的同名成员,则在公有继承调用构造函数时,会对这个同名成员有二义性。原因是:俩个成员都相同只是存放的地址不同(值可能会变化)编译器调用时,根据base3的继承声明,依次进行调用。其中每调用一次直接基类之前,都会调用一次base。析构顺序与构造顺序相反。若是虚基类,则构造顺序会有点不同,base调用一次,并且不会有同名二义性。#include<iostream>using namespace std;class base{ protect.原创 2022-01-05 11:15:13 · 363 阅读 · 0 评论 -
【深层拷贝解决指针悬挂】
浅层拷贝出现问题:拷贝函数的调用对象所指指针,与被调用对象指针所指一个空间,主函数结束,该空间被连续释放俩次,导致指针悬挂解决方法:深层拷贝1.在拷贝函数体内,new一个新的空间2.用运算符重载operator =()在拷贝函数体内,new一个新的空间#include<iostream>#include<cstring>using namespace std;class student{ public: student(char *a, float b).原创 2022-01-01 14:31:43 · 329 阅读 · 0 评论 -
用指针比较三个数字大小
#include<iostream>using namespace std;class A{ public: A(int a,int b,int c) { x=a; y=b; z=c; } ~A(){ } void compare() { if((this->x)>(this->y)&&(this->x)>(this->z)) { cout<<this->原创 2022-01-01 11:40:49 · 368 阅读 · 0 评论 -
对象引用作为函数参数
注意定义函数形参格式:类名& 对象名指针对象调用或访问成员函数或数据成员用’->’引用只需要’.’#include<iostream>using namespace std;class a{ public: a(int a) { x=a; } int get() { return x; } void set(int a) { x=a; } private: int x;};void sql(a&原创 2021-12-26 19:37:50 · 719 阅读 · 0 评论 -
对象指针做函数参数
要注意:定义函数中的参数列表是类名 指针变量名,形参是指针变量名;调用函数中的实参是&对象名;#include<iostream>using namespace std;class a{ public: a(int a) { n=a; } int get () { return n; } void set(int a) { n=a; } private: int n;};void sql(a *ob) {原创 2021-12-26 19:24:13 · 973 阅读 · 0 评论 -
多个参数构造函数指针访问对象数组(增减调用)
以下是增调用#include<iostream>using namespace std;class exam{ public: exam(int a,int b){ x=a; y=b; } void show() { cout<<x<<" "<<y<<endl; } private: int x; int y; };int main(){ exam a[4]={ exam(1,2),原创 2021-12-26 18:48:25 · 424 阅读 · 0 评论 -
对象指针访问
#include<iostream>using namespace std;class exam{ public: void set_exam(int a,int b) { m=a; n=b; } void show() { cout<<m<<" "<<n<<" "<<endl; } private: int m; int n;};int main(){ exam a[2原创 2021-12-26 17:09:38 · 133 阅读 · 0 评论 -
对象数组(带参数、不带参数各自应用)
#include<iostream>using namespace std;class exam{ public: exam(int a) { n=a; } exam() { n=123; } int get() { return n; } private: int n;}; int main(){ exam a[4]={11,22,33,44}; for(int i=0;i<4;i++) { cout<原创 2021-12-26 16:29:17 · 204 阅读 · 0 评论