rt_thread编程指南里讲解C 语言风格的面向对象编程:多态 的一个例子 求大神从头到尾详细解释下这个程序

rt_thread编程指南里讲解C 语言风格的面向对象编程:多态 的一个例子 求大神从头到尾详细解释下这个程序,第1张

1.该函数是一种宏定义,一般用于RTT内核代码。

2.多态指一个对象同时具有多种形式,一般可以通过定义子类重写父类方法,然后用父类引用指向子类对象来实现。

3.至于self->vfunc(self, a)就是调用对象本身的虚拟函数。。。还要怎么解释敏敬。。

4.标识符定义的一罩拿誉种物段,你可以从头看一遍书了。

5.百度百科讲的比我清楚。

class CCar

{

public:

CCar()

{

strBrand = ""

strType = ""

nDisplacement = 0

strColor = ""

}

CCar(const string &brand, const string &type, int displacement, const string &color)

{

strBrand = brand

strType = type

nDisplacement = displacement

strColor = color

}

CCar(const CCar &car)

{

strBrand = car.strBrand

strType = car.strType

nDisplacement = 兄尺car.nDisplacement

strColor = car.strColor

}

CCar &operator=(const CCar &car)

{

strBrand = car.strBrand

strType = car.strType

nDisplacement = 羡晌高car.nDisplacement

strColor = car.strColor

return *this

}

friend ostream &operator<<(ostream &o, const CCar &car)

{

o << "品牌:" << car.strBrand << endl

o << "类型:" << car.strType << endl

o << "排量:" << car.nDisplacement << endl

o << "颜色:" << car.strColor << endl

return o

}

friend istream &operator>>(istream &i, CCar &car)

{

cout << "输入品牌:"

i >> car.strBrand

cout << "输入类型:"

i >> car.strType

cout << "输入排量:"谨判

i >> car.nDisplacement

cout << "输入颜色:"

i >> car.strColor

return i

}

bool operator==(const CCar &car)

{

return nDisplacement == car.nDisplacement

}

bool operator<(const CCar &car)

{

return nDisplacement < car.nDisplacement

}

bool operator>(const CCar &car)

{

return nDisplacement > car.nDisplacement

}

private:

string strBrand

string strType

int nDisplacement

string strColor

}

int main()

{

CCar car_1

CCar car_2("宝马", "轿车", 1000, "白色")

car_1 = car_2

CCar car_3(car_1)

CCar car_4

cin >> car_4

cout << car_4

if (car_1 == car_2)

{

cout << "相等\n"

}

if (car_4 > car_3)

{

cout << "大于\n"

}

if (car_4 < car_1)

{

cout << "小于\n"

}

system("pause")

return 0

}

这个程序我昨天编过,我给你找找啊

using System

using System.Collections.Generic

using System.Text

namespace shangjiyi

{

/// <summary>

/// 此示例演示计算机两个数的加减乘除取余

/// </summary>

class Program

{

static void Main(string[] args)

{

int first //第一个 *** 作

int second //第二个 *** 作

string myOprator//运算扰棚蠢符

int result//计算结果

//输入参与计算 *** 作数和运算符

Console.WriteLine("我是第一个简单的计算器,可以实现两个整数的加减乘除取缓陪余")

Console.Write("请输入第一个 *** 作数:")

first = int.Parse(Console.ReadLine())

Console.Write("请输入第二个 *** 作数")

second = int.Parse(Console.ReadLine())

Console.Write("请输入运算符(+ - * %):")

myOprator = Console.ReadLine()

//计算,并输出运算符

if (myOprator == "+") //加法

{

result = first + second

Console.WriteLine("加上等于"和弊, first, second, result)

}

else if (myOprator == "-") //减法

{

result = first - second

Console.WriteLine("减去等于", first, second, result)

}

else if (myOprator == "*") //乘法

{

result = first * second

Console.WriteLine("乘以等于", first, second, result)

}

else if (myOprator == "%") //取余

{

result = first % second

Console.WriteLine("除以等于", first, second, result)

}

else

{

Console.WriteLine("对不起,我不认识你的运算符!")

}

Console.ReadLine()

}

}

}

这个可以,我试过


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12354585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存