提交 cb3249e1 编写于 作者: W wsb

重载加号运算符示范

上级 d9fe300d
......@@ -3,4 +3,4 @@ project(CPP_11_HeavyLoad)
set(CMAKE_CXX_STANDARD 11)
add_executable(CPP_11_HeavyLoad main.cpp test.cpp test.h)
add_executable(CPP_11_HeavyLoad main.cpp test.cpp test.h operatorDemo.cpp operatorDemo.h)
#include <iostream>
#include "test.h"
#include "operatorDemo.h"
int main() {
......@@ -11,6 +12,15 @@ int main() {
test->max("字符串",12,12);
cout<<max1<<","<<max2<<endl;
std::cout << "Hello, World!" << std::endl;
//重载+号运算符
operatorDemo op1(12,12,12), op2(34,23,14); //申明两个类对象并给出初始值
op1.print();
op2.print();
//使用重载函数使两个对象相加
operatorDemo OP=op1+op2; //实际上全写为: op1.operator+(op2); 只不过operator和()可以免写罢了
OP.print();
return 0;
}
//
// Created by 11010 on 2023/4/8.
//
#include "operatorDemo.h"
operatorDemo::operatorDemo(int w, int l, int h) : width(w), len(l), height(h) {
}
//重载加号,用于使两个对象相加
operatorDemo operatorDemo::operator+(const operatorDemo &op) {
operatorDemo OP; //临时类变量,用于返回一个新的类对象
OP.width = width + op.width;
OP.len = len + op.len;
OP.height = height + op.height;
return OP;
}
operatorDemo::operatorDemo() {
}
void operatorDemo::print() {
cout<<"长:"<<len<<",宽:"<<width<<",高:"<<height<<endl;
}
//
// Created by 11010 on 2023/4/8.
//
#ifndef CPP_11_HEAVYLOAD_OPERATORDEMO_H
#define CPP_11_HEAVYLOAD_OPERATORDEMO_H
#include <iostream>
#include <string>
using namespace std;
//操作符重载类
class operatorDemo {
public:
int width;
int len;
int height;
operatorDemo(int w,int l,int h);
operatorDemo();
void print(); //打印信息
//申明重载函数: 重载+号,用于把两个对象的属性相加操作
operatorDemo operator+(const operatorDemo &op);
};
#endif //CPP_11_HEAVYLOAD_OPERATORDEMO_H
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册