//Programmer.h
#pragma once
#include <iostream>
#include <string>
class Programmer
{
public:
Programmer() {};
~Programmer() {};
void SetName(std::string &in_name) { m_name = in_name; }
void SetLanguage(std::string &in_language) { m_language = in_language; }
void SetLevel(int in_level) { m_level = in_level; }
std::string GetName() { return m_name; }
std::string GetLanguage() { return m_language; }
int GetLevel() { return m_level; }
Programmer& operator= (const Programmer& in_programmer)
{
if ( this != &in_programmer )
{
m_name = in_programmer.m_name;
m_language = in_programmer.m_language;
m_level = in_programmer.m_level;
}
return *this;
}
private:
std::string m_name;
std::string m_language;
int m_level;
};
#include "stdafx.h"
#include "programmer.h"
int _tmain(int argc, _TCHAR* argv[])
{
Programmer a;
std::string name = "Kevin Chen";
std::string language = "C++";
int level = 1;
a.SetName(name);
a.SetLanguage(language);
a.SetLevel(level);
Programmer b = a; // copy the values from a
std::cout<<a.GetName()<<std::endl;
std::cout<<b.GetName()<<std::endl;
std::cout<<a.GetLanguage()<<std::endl;
std::cout<<b.GetLanguage()<<std::endl;
std::cout<<a.GetLevel()<<std::endl;
std::cout<<b.GetLevel()<<std::endl;
std::string name2 = "Jack Chen";
std::string language2 = "C++";
int level2 = 2;
b.SetName(name2);
b.SetLanguage(language2);
b.SetLevel(level2);
std::cout<<a.GetName()<<std::endl;
std::cout<<b.GetName()<<std::endl;
std::cout<<a.GetLanguage()<<std::endl;
std::cout<<b.GetLanguage()<<std::endl;
std::cout<<a.GetLevel()<<std::endl;
std::cout<<b.GetLevel()<<std::endl;
return 0;
}
输出结果:
Kevin Chen
Kevin Chen
C++
C++
1
1
Kevin Chen
Jack Chen
C++
C++
1
2
分享到:
相关推荐
在C++编程语言中,运算符重载是一项关键特性,允许我们为自定义类型赋予特定的运算符行为。本实验“C++作业实验-运算符重载”旨在深入理解这一概念,通过Visual Studio 2010开发环境进行实践。在这个实验中,我们将...
运算符重载函数的名称由关键字“operator”和一个运算符构成,例如“operator+”。运算符重载函数可以是成员函数或非成员函数。 4.运算符重载的种类 运算符重载可以分为一元运算符重载和二元运算符重载。一元...
### C++实验报告实验七-运算符重载 #### 实验目的 本次实验的主要目标是通过实际编程加深对C++中运算符重载的理解和应用。具体包括: 1. **编写程序熟悉运算符重载函数的定义和使用**:通过实践操作理解如何...
运算符重载是C++语言中的一个重要特性,它允许我们为自定义数据类型定义运算符的行为,使得操作更加直观和自然。本节将详细介绍运算符重载的相关规则、语法形式以及一些典型运算符的重载实例。 6.1 运算符重载规则 ...
operator-overloading-js, JS简单运算符重载库 目录Operator-Overloading-JS安装工具node MODULE ( NPM )浏览器( Bower )Sneak示例重载运算符设计考虑/非常重要/必须阅读。Definig使用运算符重载的上下文
在C++编程语言中,运算符重载是面向对象特性的一部分,允许我们为自定义类型定义特定的行为。这里,我们将深入探讨前置`++`、后置`++`、前置`--`和后置`--`这四个增量和减量运算符的重载,并通过实例分析如何在`main...
几个典型运算符重载(C++) 本资源主要讲解C++中的运算符重载,特别是几个典型的运算符重载,包括前置和后置的++与--运算符的重载。 1. 运算符重载的概念 运算符重载是指在C++中对已有的运算符重新定义,以适应类...
在C++编程语言中,运算符重载是一项高级功能,它允许程序员为类定义的自定义对象重新定义运算符的行为。运算符重载是C++多态性的一种体现,即运算符在不同的数据类型上可以有不同的行为。在运算符重载中,运算符被视...
C++运算符重载 C++语言提供了运算符重载机制,允许程序员对已有的运算符赋予新的含义,使其应用于用户自定义的类。运算符重载是对已有的运算符赋予多重含义,同时保持其原有的优先级和结合性。 什么是运算符重载?...
CTime &operator-=(const CTime &c); CTime &operator+=(int s); CTime &operator-=(int s); }; ``` 接下来实现这些运算符: ```cpp // 比较运算符 bool CTime::operator>(const CTime &t) const { if (hour >...
在运算符重载为类的友元函数时,对于前置单目运算符 S,如果要重载 S 为类 X 的友元函数,用来实现表达式 S xobj,其中 xobj 是类 X 的对象,经过重载后,表达式 S xobj 就相当于函数的调用 operator S(xobj)。...
运算符重载是C++语言中的一项重要特性,它允许开发者为用户自定义的数据类型(如类)赋予标准运算符新的含义,使得这些运算符在处理这些特定类型时能够执行相应的操作。运算符重载的核心在于,通过创建与运算符关联...
本篇文章将深入探讨C++中的运算符及其使用,特别是重点讲解“运算符重载”这一关键概念。 首先,C++支持多种类型的运算符,包括算术运算符(如+,-,*,/,%),关系运算符(如==,!=,<,>,<=,>=),逻辑运算符...
在C++编程语言中,运算符重载是其特性之一,允许我们为现有的运算符赋予新的含义,以便在自定义类型上使用。本教程通过一个DEMO深入探讨如何在C++中实现运算符重载以及如何利用成员函数来完成这一过程。 首先,理解...
通过这个例子,你可以看到如何在实际项目中应用C++的运算符重载,使得自定义类能与标准库中的类型无缝集成。这个压缩包中的代码很可能是为了演示这个概念,让你能够亲自动手实践并理解重载运算符的工作原理。学习和...
之后,我们利用加法和减法运算符重载来计算和与差,并通过友元函数`operator将结果输出到控制台。 这个例子展示了如何通过运算符重载成员函数实现复数类的加减法运算,使得用户可以像处理基本数据类型一样方便地...
"类运算符重载设计定义一个二维方阵类 matrix" 本节将详细讲解类运算符重载设计定义一个二维方阵类 matrix,通过重载二元运算符“+”、“-”、“*”和一元运算符“~”,来实现矩阵加、矩阵减、矩阵乘以及矩阵转置。...
### 运算符重载和函数重载 #### 概述 在面向对象编程中,重载是一种重要的机制,它允许我们为同一个名称定义多个不同的实现。这不仅可以提高代码的可读性和简洁性,还可以更好地封装行为。在C++中,重载主要分为两...
在C++编程语言中,运算符重载是一种强大的特性,允许程序员为自定义类型赋予特定的行为,以便它们能像内置类型一样使用。本篇将详细探讨流运算符重载,也就是`和`>>`这两个运算符在处理输入输出流时如何被重载。 ...
在C++编程语言中,复数类的实现是面向对象编程的一个重要概念,它允许我们创建自定义数据类型来表示复数,并通过运算符重载为这些类型提供友好的操作接口。运算符重载是C++的一个强大特性,使得我们可以为自定义类型...