C++学习笔记15,结构体中的方法


C++中结构体和C中有点不同的就是,C++中的结构体可以有类似于类那样的方法。

#include <iostream>
using namespace std;
struct Point{
	int i;
	int j;
	Point(int ii,int jj){//类似于类的构造函数
		i=ii;
		j=jj;
		str="Point(int,int)";
	}
	Point(){
		str="Point()";
	}
	Point(int ii){
		i=ii;
		str="Point(int)";
	}

	int getI(){//类似于类的成员函数
		return i;
	};
	string getStr(){
		return str;
	}
private://可以通过类似于类的访问控制符来修饰
	string str;
};
int main()
{
	
	Point p;//必须有相对应的构造函数,姑且称之为构造函数吧
	p.i=1;
	p.j=2;
	//p.str="stringOne";//不能直接符访问
	string s=p.getStr();
	cout<<s<<endl;
	int k=p.getI();
	cout<<k<<endl;
	Point pp(3,4);
	int kk=pp.getI();
	cout<<kk<<endl;
	
	Point ppp(5);
	int kkk=ppp.getI();
	cout<<kkk<<endl;
	ppp.i=15;
	kkk=ppp.getI();
	cout<<kkk<<endl;
}

执行结果:

区别在于:结构体中的成员的默认访问属性都是public,而在类中则是private:

也可以利用默认初始化器的方式初始化,例如:

	Point(int ii):<span style="color:#ff0000;">i(ii)</span>{
		//i=ii;
		str="Point(int)";
	}

这样也是可以的。

 

 


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注