CPP笔记 第一章 C与C++区别

<>代表的是所有的系统级的文件,而非自己的。
自己的文件引用为“”,如“SSSS.H”

C与C++打印方式不同
如:

C:Printf(“Hello World \n”);

C++: Cout<<"Hello World "<< “www”<<endl;

C没有Bool,C++有Bool;

C的bool可以通过include“stdbool.h”来包含bool;

引用
C++支持传引用&,C不支持传引用
引用比指针高效
引用的特性:
1、引用必须初始化
2、可以被多个对象进行引用
3、引用一旦绑定某个实体,不能被其它变量所引用
除以上特性外,引用与指针的实现方式是一样的,但引用不能为NULL,而指针可以有空指针。
如下图,虽然都可以更改a的值,但效率不同

struct FHello{
	int a;
	int b;
	long int c;
};
void fun(FHello& cc) {
	cc.a = 0;
}
void FunPtr(FHello *cc) {
	cc->a = 5;
}
int main() {
	printf("HelloWorld");//c的打印

	cout << "\n" << "Hello World" << endl;
	FHello o;
	fun(o);
	FunPtr(&o);//在调用 FunPtr(&o) 时,需使用 & 符号来传递对象 o 的地址,确保指针参数 FHello* cc 能够正确地指向 o 的内存地址。
	return 0;
}
//如果求引用的大小,则计算的是整个结构体大小,如果求指针大小,则是4个字节。

再比如,引用的是一个对象,返回引用时,也必须确保返回了一个对象,不能为null。如下图,便会报错

这里是引用
class FHello {
public:
int a;
};
// 错误的函数实现
FHello& A() {
return nullptr; // 试图返回一个空指针会导致崩溃
}
int main() {
FHello obj;
obj.a = 10;
FHello& ref = A(); // 调用返回错误引用的函数
// 此处代码将不会正常执行,因为A()函数已经导致崩溃
ref.a = 20;
std::cout << ref.a << std::endl;
return 0;
}

函数返回值可能是空的情况下不能使用引用。如果需要返回一个引用,确保返回的引用始终指向一个有效的对象。例如,返回一个类成员变量的引用或者一个静态对象的引用。

// 正确的函数实现
FHello& A(FHello& obj) {
return obj; // 返回传入对象的引用
}
int main() {
FHello obj;
obj.a = 10;
FHello& ref = A(obj); // 调用返回正确引用的函数
ref.a = 20; // 修改引用所指向对象的成员变量
std::cout << ref.a << std::endl; // 打印修改后的值,应该为20
return 0;
}

或者直接使用指针

FHello*a(){
return null;
}

C++结构体中可以直接写函数,而C语言不行(但是可以放变量,如果要放函数的话会很麻烦,如图)
在这里插入图片描述
继承的不同
C语言没有继承(根本不让你继承)(xxx():public XXX),C++可以继承;

结构体默认是公开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值