关于结构体的操作符重载和定义在内部的函数
来源:互联网 发布:docker安装windows 10 编辑:程序博客网 时间:2024/06/01 10:27
首先结构体和类是有相似的地方的,可以进行运算符重载。
下面以=为例,
#include<iostream>using namespace std;struct P{int a;int b;//虽然已经对结构体进行=重载,但是这里只是举一个例子而已P& operator=(P& temp){a=temp.a;b=temp.b; return *this; }};int main(){P p={1,2}; P x; x=p; cout<<x.a;//输出:1return 0;}还有结构体运算符的重载是不能用友元函数来重载的,因为友元是针对类,结构体虽和类相似,但是毕竟不是类,也无法和类“相等”。
不过我也发现可以在结构体内写个构造函数等。。
#include<iostream>using namespace std;struct P{int a;int b;//P(){}//P(int x,int y):a(x),b(y){}P(int x=0,int y=0):a(x),b(y){} void ShowAdd(){cout<<a+b<<endl;} };int main(){P temp;//right //P p1={1,2};//error P p2(1,2);//right p.ShowAdd();//输出:3 cout<<p.a<<endl;//输出:1 return 0;}
这样的话,结构体几乎就和类一样了。注意结构体中定义的变量和方法是public的。
这里要解释下下面这几句代码:
//P(){}//P(int x,int y):a(x),b(y){}P(int x=0,int y=0):a(x),b(y){}如果你写了第三行的代码,那就千万不要写第一第二行,为什么?放你编译器运行看看吧,这里只是提个醒,不作解释,很简单。
1 0
- 关于结构体的操作符重载和定义在内部的函数
- 结构体的操作符重载和内部的函数定义及使用(结构体的进一步使用)
- 关于操作符“>>”和“<<”的重载
- 关于 操作符“<<”和“>>”重载的心得
- 重载操作符和用户定义的转换
- C++主要操作符重载的定义和总结
- C++的重载函数定义和用法
- 虚函数的重载和重新定义
- C++ 重载操作符的定义
- 关于C++的拷贝构造函数和赋值操作符重载
- 构造函数的定义和构造函数的重载
- 关于<<和>>重载操作符 返回值的问题
- 关于全局结构体的定义和使用
- 函数的声明和定义的区别; 结构体的说明和定义的区别
- [C++]函数的重载、重写和重定义的区别
- c/c++中如何写结构体的 构造函数 和 重载运算符?
- 关于C++成员函数和运算符的重载
- 重载符的定义
- HTTP 状态码的完整列表
- AJAX学习笔记
- newssoj1004逐个击破attack(排序+并查集)
- Python
- 继承中的构造方法
- 关于结构体的操作符重载和定义在内部的函数
- MyEclipse10.x添加jadClipse反编译插件
- 2015暑期多校训练第一场 1,2,3
- ios开发之多线程--GCD介绍
- Linux 硬限制和软限制 http://www.52ml.net/2624.html
- python list元素为dict时的排序
- Repeated DNA Sequences —— Leetcode(教训,重做)
- hdu 1067 Gap+BFS+hash
- LA 4670 Dominating Patterns (ac自动机)