其他分享
首页 > 其他分享> > 结构体内的一些操作

结构体内的一些操作

作者:互联网

结构体内的一些操作

重载

#include <bits/stdc++.h>

using namespace std;

struct test {
	int a, b;
	friend bool operator < (const test &x, const test &y) {
		return x.a < x.b;
	}
} x, y;

int main() {
	
	cin >> x.a >> x.b;
	if(x < y) cout << 1;
	else cout << 0;
	
	return 0;
} 

加&:更快。相当于调用地址进行操作。如果不加&的话会非常慢,相当于把要操作的东西先复制了一遍。

加\(const\):保证要操作的东西不被改变。可以更快一点点。

加\(friend\):结构体中重载,后面如果有两个参数,必须加\(friend\)。如果在结构体外重载就不用加了。

返回类型:上面的就是返回的\(bool\)类型,因为是重载小于号,别的该返回啥返回啥。

构造函数

#include <bits/stdc++.h>

using namespace std;

struct test {
	int a, b;
    char *ch[2];
	test(int c = 0, int d = 0) : a(c), b(d) { ch[0] = ch[1] = NULL; }	
};

int main() {
	
	test x(1, 3), y;
	cout << x.a << " " << x.b << "\n";
	cout << y.a << " " << y.b << "\n";
	
	return 0;
}

​ 更简单的初始化,注意要赋值的东西对应好了就行。如果没有赋初值直接就是0。

保护(隐藏)

#include <bits/stdc++.h>

using namespace std;

struct Stack {
	protected:
		int a;
	public:
		void make() {
			cout << ++a; 
		}
} cj;

int main() {
	
	cj.make();
//	cj.a++;

	return 0;
}

​ 我们平常写的结构体内的所有东西都是在\(public\)中搞的,\(protected\)里搞的东西只能在这个结构体里用到,上面代码被注释的是错误写法,会报错:

标签:ch,const,cout,int,重载,test,操作,体内,结构
来源: https://www.cnblogs.com/czhui666/p/13381870.html