C++高级语法

一.面向对象

1.1 类

C++使用Struct.class 来定义一个类:
struct的默认成员权限为public
class的默认成员权限是private

class Student{
private: 
	string name;
	double score;
public :
	Student();
	virtual ~Student(); // 析构函数
	double GetScore(){
		return score;
		}
	//运算符重载
	Student operator+(const Student& x){
		Student s;
		s.score = score+x.score;
		return s;
		}
}

二.前置与后置操作符

//前置
Complex &operator++(){
	_real++;
	_image++;
	return *this;
}
//后置
Complex operator++(int){
	Complex tmp(*this);
	_real++;
	_image++;
	return tmp;
}

三.标准输入输出IO重载

//友元函数friend
ostream &operator<<(ostream& os, const Complex &x){
	os<< x._real<<x._image<<endl;
	return os;
}

istream &operator<<(istream& is, Complex &x){
	is>> x._real>>x._image;
	return is;
}

四.I/O流基础

4.1 i/o流类结构图

在这里插入图片描述

4.2 I/O缓存区

1.按块缓存:如文件系统
2.按行缓存 : \n
3.不缓存

int a;
int index = 0;
while(cin>>a){
	cout<<a;
	index++;
	if(index==5)
		break;
}
//通过该方法将缓存区的数据给清除将1024个缓存区脏数据,以\n为结尾
cin.ignore(1024,"\n");
char ch;
cin>>ch;

五.文件操作基础

//输出文件的操作
//1.创建文件流
fstream fout;
//2.打开文件,在文件尾部添加数据,ios::trunc文件存在则清除文件原有的内容
fout.open("xx.txt",ios::app)
//3.判断文件是否读取成功
if(fout.fail())
//4.使用文件流
fout<<"input a number"<<endl;
//5.关闭文件流
fout.close()

//读取文件操作,
//1.创建文件流
ifstream in(str.c_str(),ios::in | ios::binary)
//2.打开文件,string类转为char数组类型,ios::in读入方式,ios::binary 以二进制方式读取
in.open(str.c_str(),ios::in | ios::binary)
//3.判断是否读取成功
if(in.fail())
//4.判断是否读取到eof结束位置
char temp[max]
while(!in.eof()){
	//temp读取到的文件缓存数组,bufferlen最多读取
	in.read(temp,bufferlen)	
}
//5.关闭输入流
in.close()

六.深拷贝.浅拷贝.写时复制

浅拷贝:只拷贝指针地址,c++默认拷贝构造函数与赋值运算符重载都是浅拷贝
深拷贝:重新分配堆内存,拷贝指针指向内容

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在国际象棋中,学会如何移动棋子只能算是入门:要想掌控整个棋局,我们必须了解自己所下的每一步棋后的策略和战术。在C++中也同样如此。掌握正确的策略可以帮助我们避免常见的陷阱,并提高我们的工作效率。在本书中,C++专家Rob Murray就与我们分享了他宝贵的经验和建议,以帮助初中级C++程序员得到进一步的提高。  在本书中,作者大量采用了实际开发中的代码来作为示例,向读者展示了那些有用的编程策略,并对那些有害的做法进行了警示。为了帮助读者更好地理解,在书中的每一章结束前,在该章中被介绍过的主要内容都被放到了一个列表中,此外,书中还给出了一些问题来激励读者们进行更多的思考和讨论。 本书在一开始就向我们讲解了如何为我们的设计选择正确的抽象,提示我们注意抽象和现实之间的区别。然后,我们就将学到如何将已得到的抽象转化成一个(或多个)C++中的类,期间进行的讨论所涵盖的范围上至高层的设计策略,下至底层的接口和实现细节。   接下来本书对单继承和多重继承进行了深入的探索。一开始书中会给出一个关于它们应该用在设计的什么地方的讨论,然后就是一些详细的示例代码,用来向我们演示如何在实践中使用这些概念。对于“如何构建可派生出其他类的类”以及“这么做的好处何在”,书中还专门抽出了一章来讨论它们。   对于C++中新增的模板特性,通过从基础开始到逐步地接触实际应用中的示例,Rob Murray向我们展示了其空前的洞察力。作者同时也向我们展示了多种特定的技巧,以使我们的程序更快、重用性更高,并且更健壮。异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议。在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的技术问题,也包括了使用技术的“人”的问题。
C高级语法算法是指在使用C语言进行编程时,使用更加复杂和高级语法结构和算法技巧来解决问题和优化程序性能。 其中,高级语法主要包括以下几个方面: 1. 指针运算:指针是C语言的重要概念,高级语法中可以使用指针进行各种操作,如指针的算术运算、指针和数组的关系等,可以提高程序的效率和灵活性。 2. 动态内存分配:使用高级语法可以通过动态内存分配函数(如malloc、realloc等)实现内存的动态分配和释放,从而更加灵活地管理内存空间,避免了静态内存分配的不足之处。 3. 函数指针:C语言支持函数指针,高级语法中可以使用函数指针实现回调函数、函数的动态绑定等操作,增加了程序的灵活性和可扩展性。 4. 结构体和联合体:结构体和联合体是C语言中用于封装多个不同类型数据的数据类型,高级语法中可以使用结构体和联合体进行更加复杂的数据组织和操作,提高程序的可读性和可维护性。 在算法方面,C高级语法可以应用于各种算法的实现和优化,例如排序算法、查找算法、图算法等。使用高级语法可以提高算法的效率和准确性,同时降低程序的复杂度和维护成本。 总之,C高级语法算法是C语言编程中的一种高级应用技巧,通过使用更复杂和灵活的语法结构和算法技巧,可以实现更高效、更可读、更可维护的程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值