C++常用操作

//一个类
class Class_one
{
	int num;
	char name[20];
	void display()
	{....}
};
Class_one stu1,studh2;
//指定访问属性(默认为私有)
class Ex_class
{
	private:
	int sum;
	public:
	char a[];
};
//类外定义函数
void Ex_class::display()
{....}
//定义内置函数,类内默认为内置函数
inline void display();
//访问对象内的成员
stu1.display();
stu1.num;
Class_one *p;
p=&stu1;
p->num;
//默认参数,声明时使用,定义时不必
void set(Class_one&int a=1;int b=2);
//类的初始化
class Ex_class
{
	a;
	b;
};
Ex_class one{1,2};//公有时才能用
class Ex_class
{
	Ex_class()//构造函数
	{
		a=b=0;
	}
};
class Ex_class
{
	Ex_class()};
Ex_class::Ex_class()//类外定义,无类型,无法被用户调用
{
	a=b=0;
}
class Ex_class
{
	Ex_class(intint);
};
Ex_class::Ex_class(int m,int n)//带参数的构造函数
{
	a=m,b=n;
}
Ex_class one(1,2);
Ex_class(int n,int m,nam[]):a(n),b(m)//初始化表
{
	strcpy(name,nam);
}
Ex_class one(1,2"oo");
//析构函数
class Ex_class
{
	~Ex_class()
	{....}
};
//对象数组
Ex_class sum[3]={1,2,3}//每个对象只有一个参数
Ex_class sum[3]={
	Ex_class(1,2);
	Ex_class(1,2);
	Ex_class(1,2);
};
//定义一个指向公用成员函数的指针
void Ex_class::*(p2());
p2=&Ex_class::display();
//常对象、常数据、常成员函数、指向对象的常指针、指向常变量的常指针、指向常对象的指针
const Ex_class stu1;
const int a;
void display()const;
Ex_class*const p;
const int *p;
const Ex_class *p;
//使得const成员函数可以修改
mutable int count;
//对象的引用(虚实结合,能修改实参)、常引用
void display(Ex_class &t);	void display(const Ex_class &t);
//对象的动态建立和释放
new Box;
Box *pt=new Box(1,2);
delete pt;
//对象的赋值与复制
Ex_class stu1,stu2;
stu1=stu2;
Box box2(box1);//调用复制构造函数
Box box2=box1;
//静态数据成员:可以初始化,但只能在类外;程序结束时释放空间
static int a;
//静态成员函数
static int display();
Ex_class::display();//类外调用必须带::没有this指针
//友元函数:能直接调用类里的私有函数(可以是其他类的成员函数)
class Ex_class
{
	friend void display(Ex_class&);
};
void display(Ex_class oneclass)
{
}
//友元类,在类A里定义使得B的成员函数都是A的成员函数
friend B;
//类模板
template <class numtype>//定义一个模板虚拟类型名为numtype
class Compare
{
	compare(numtype a,numtype b)
	{....}
	numtype m()
	{....};//如果在类外定义:numtype Compare<numtype>::m();
};
compare<int> cmpl(3,4);
template <class numtype,class numtype2>//可定义多个
class someclass
{....}
someclass<int,double> obj;
//运算符重载
Ex_class operator+(Ex_class &c1,Ex_class &c2)//类内定义
{...}
Ex_class Ex_class::operator+(Ex_class &c1,Ex_class &c2)//类外定义
{...}
friend Ex_class operator+(Ex_class &c1,Ex_class &c2)//作为友元函数声明
Ex_class operator+(Ex_class &c1,Ex_class &c2)//作为友元函数定义
{...}
//<<,>>运算符的重载
istream&operator>>(istream&,oneclass&)
{
	input>>p.x>>p.y;
	return input;
}
ostream&operator<<(ostream&,oneclass&)
{
	output<<"("<<p.x<<")";
	return output;
}
//转换构造函数,只有一个参数
Teacher(Student& s){num=s.num;strcpy(name,s.name);}
//类型转换函数
operator double()
{return real;}//类中定义,自动完成转换
d1=d2+c1;
//继承与派生
class Student1:public Student
{....};
Student1(int n,string name,int n1,string name2,int a,string bn):
Student(n,name),monitor(na,name2)//派生类的构造函数
//虚基类
class B:virtual public A
{....};
//虚函数:使得派生类能调用基类的函数
virtual void display();
//纯虚函数
virtual float ab() const=0;
//输入输出流
cout.put('i');//cout.put('i').put('i').put('i')
cin.get();
cin.getline(ch,20,'/');//读入19个字符后面加上'\0'做结尾,遇到'/'结束
//文件流
#include<fstream>
ofstream outfile;
outfile.open("f1.dat",ios::out);//向磁盘文件输出数据
outfile.close();
//ascii读写
#include<fstream>
ofstream outfile("f1.dat",ios::out);
ifstream infile(filename,ios::in|ios::nocreate);
infile.close();
//二进制文件读写
#include<fstream>
ofstream outfile("f1.dat",ios::binary);
outfile.write((char*)&stud[i],sizeof(stud[i]));
outfile.close();
//字符串流对象
#include<strstream>
ostrstream strout(c,30);//建立输出字符串流,与c关联,缓冲区长30
strout<<"hjyu";
strout<<ends//插入一个’\0'
istrstream strin(c,sizeof(c));
strin>>a[i];//字符串流不需要打开关闭文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值