当前位置:天才代写 > 作业代写 > 作业代写代做 lab代写 程序代写

作业代写代做 lab代写 程序代写

2022-06-23 10:05 星期四 所属: 作业代写 浏览:138

作业代写代做

实验六 派生与继承多基派生

作业代写代做 6.1 实验目的 1.理解多基派生的定义;2.理解多基派生中构造函数与析构函数的调用顺序;3.理解多基派生中虚基类的作用;1.理解下面的程序并运行,然后回答后面的问题。问题一:改正以上程序中的错误,并分析输出结果。2.理解下面的程序并运行,然后回答后面的问题。

6.1 实验目的  作业代写代做

1.理解多基派生的定义;

2.理解多基派生中构造函数与析构函数的调用顺序;

3.理解多基派生中虚基类的作用;

6.2 实验内容

6.2.1程序阅读

1.理解下面的程序并运行,然后回答后面的问题。

class CBase1

{

public:

CBase1(int a)

:a(a)

{

cout<<"base1 structure..."<<endl;

}

~CBase1()

{

cout<<"base1 destructure..."<<endl;

}

void print()

{

cout<<"a="<<a<<endl;

}

protected:

int a;

};

class CBase2

{

public:

CBase2(int b)

:b(b)

{

cout<<"base2 structure..."<<endl;

}

~CBase2()

{

cout<<"base2 destructure..."<<endl;

}

void print()

{

cout<<"b="<<b<<endl;

}

protected:

int b;

};

class CDerive : public CBase1, public CBase2

{

public:

CDerive()

{

cout<<"derive structure..."<<endl;

}

~CDerive()

{

cout<<"derive destructure..."<<endl;

}

void print()

{

CBase1::print();

CBase2::print();

b1.print();

b2.print();

cout<<"c="<<c<<endl;

}

private:

CBase1 b1;

CBase2 b2;

int c;

};




void main()

{

CDerive d;

d.print();

}

问题一:改正以上程序中的错误,并分析输出结果。

2.理解下面的程序并运行,然后回答后面的问题。  作业代写代做

#include "iostream.h"

class CBase

{

public:

CBase(int a)

:a(a)

{

}

int a;

};

class CDerive1 : public CBase

{

public:

CDerive1(int a)

:CBase(a)

{

}

};

class CDerive2 : public CBase

{

public:

CDerive2(int a)

:CBase(a)

{

}

};

class CDerive : public CDerive1,public CDerive2

{

public:

CDerive(int a,int b)

:CDerive1(a),CDerive2(b)

{

}

};

void main()

{

CDerive d(1,2);

cout<<d.a<<endl;

}

问题一:在不改变原有程序意图的前提下,分别用三种方法改正以上程序,并使程序正确输出。

作业代写代做
作业代写代做

实验七 多态性函数与运算符重载  作业代写代做

7.1 实验目的

1.理解静态联编和动态联编的概念;

2.掌握成员函数方式运算符重载;

3.掌握友元函数方式运算符重载;

4.掌握++、–、=运算符的重载。

7.2 实验内容

7.2.1程序阅读

1.理解下面的程序并运行,然后回答后面的问题。

#include "iostream.h"

class CComplex

{

public:

CComplex()

{

real = 0;

imag = 0;

}

CComplex(int x,int y)

{

real = x;

imag = y;

}

int real;

int imag;

CComplex operator + (CComplex obj1)-----------------------------------------------①

{

CComplex obj2(real + obj1.real, imag + obj1.imag);

return obj2;

}

};




void main()

{

CComplex obj1(100,30);

CComplex obj2(20, 30);

CComplex obj;

obj = obj1+obj2; ------------------------------------------------------------------②

cout << obj.real <<endl;

cout << obj.imag << endl;

}

问题一:①处的运算符重载,为什么该函数的返回值要设计成CComplex类型?  作业代写代做

问题二:②处的运算符重载函数调用就相当于“obj=operator+(obj1,obj2);”,请问CComplex类中的运算符重载函数为什么只有一个参数?

2.理解下面的程序并运行,然后回答后面的问题。

#include "iostream.h"

class CComplex

{

public:

CComplex()

{

real = 0.0;

imag = 0.0;

}

CComplex(float x, float y)

{

real = x;

imag = y;

}

CComplex operator + (CComplex &obj1, CComplex &obj2)

{

CComplex obj3(obj1.real + obj2.real, obj1.imag + obj2.imag);

return obj3;

}

CComplex &operator++(CComplex &obj)

{

obj.real += 1;

obj.imag +=1;

return obj;

}

void print()

{

cout<<real<<"+"<<imag<<"i"<<endl;

}

private:

float real;

float imag;

};




CComplex &operator--(CComplex &x)

{

x.real -= 1;

x.imag -= 1;

return x;

}




void main()

{

CComplex obj1(2.1,3.2);

CComplex obj2(3.6,2.5);

cout<<"obj1=";

obj1.print();

cout<<"obj2=";

obj2.print();

CComplex obj3 = obj1 + obj2;

cout<<"befor++, obj3=";

obj3.print();

++obj3;

cout<<"after++, obj3=";

obj3.print();

--obj3;

cout<<"after--, obj3=";

obj3.print();

CComplex obj4 = ++obj3;

cout<<"obj4=";

obj4.print();

}

问题一:以上程序中的三个运算符重载都有错误,试改正并分析输出结果。

7.2.2 程序设计

1.把7.2.1中第一道题的程序改造成采取友元函数重载方式来实现“+”运算符,并采取友元函数重载方式增加前置和后置“++”以及“–”运算符重载,并设计主函数来验证重载运算符的用法。

实验八 多态性类型转换与虚函数  作业代写代做

8.1 实验目的

1.理解运算符[]、()的重载;

2.理解类型转换;

3.掌握虚函数的作用;

4.掌握利用虚函数实现C++的运行时多态性;

5.理解纯虚类和抽象类。

8.2 实验内容

8.2.1程序阅读

1.理解下面的程序并运行,然后回答后面的问题。

#include <iostream.h>

#include "stdlib.h"

class CComplex

{

public:

CComplex(double r = 0, double i = 0)

{

real = r;

imag = i;

}

int operator int()

{

return (int)real;

}

void Display(void)

{

cout << "(" << real << "," << imag << ")" << endl;

}

protected:

double real;

double imag;

};

class CVector

{

public:

CVector(CComplex &obj1, CComplex &obj2, CComplex &obj3, CComplex &obj4)

{

objArray[0] = obj1;

objArray[1] = obj2;

objArray[2] = obj3;

objArray[3] = obj4;

}

friend CComplex &operator[](CVector obj, int n);

private:

CComplex objArray[4];

};

CComplex &operator[](CVector obj, int n)

{

if(n<0 || n>3)

{

cout<<"Out of range!"<<endl;

exit(0);

}

return obj.objArray[n];

}

void main()

{

CComplex c1(1.1, 1.1);

CComplex c2(2.2, 2.2);

CComplex c3(3.3, 3.3);

CComplex c4(4.4, 4.4);

CVector v(c1,c2,c3,c4);

v[0].Display();

v[1].Display();

v[2].Display();

v[3].Display();

v[0] = 5.5; ----------------------------------------------------------①

v[1] = CComplex(6.6); -------------------------------------------②

v[2] = int(CComplex(7.7)); --------------------------------------③

v[3] = int(CComplex(8.8,9.9)); ----------------------------------④

v[0].Display();

v[1].Display();

v[2].Display();

v[3].Display();

}

问题一:上述程序存在两个错误,请改正。

问题二:①处的转换属于显式转换还是隐式转换,解释该转换过程。  作业代写代做

问题三:②处的转换属于显式转换还是隐式转换,解释该转换过程。

问题四:解释③处的转换过程。

问题五:解释④处的转换过程。

作业代写代做
作业代写代做

 

更多代写:芝加哥商科作业代写  多邻国代写  作业被判抄袭  作业代写机构  应用理论数学代写  代写essay润色

合作平台:essay代写 论文代写 写手招聘 英国留学生代写

 

天才代写-代写联系方式