1.c++派生类的构造函数怎么写
先写基类的,构造函数,然后在写子类的
比如
class a
{
private:
int k;
public:
a(int i){k=i;}
};
class bac:public a
{
private:
int c;
public:
bac(int m,int n):a(m) // 这里利用初始化参数表来赋值
{
c=n;
}
};
2.写一个基类Point
#include const double pi=3.14; class Shape//抽象基类 { public: virtual void display()=0; }; class Point:public Shape { public: void display(){}; }; class Circle:public Point { private: double r; public: void set(double r) { r=r;} double area(double r) { return pi*r*r; } void display() { cout>r; cir.set(r); cir.display(); cout>length>>width; tect1.set(length,width); tect1.display(); cout>length>>width; tect2.set(length,width); tect2.display(); tect3=tect1+tect2; cout 追问: 这个代码我试过,并不符合要求,感谢 评论0 0 0。
3.写一个程序,声明基类shape,由他派生3个派生类:circle rectangle
刚好有空,就帮你敲了下。用的是控制台实现
基类shape:
public class Shape
{
public virtual void GetResults()
{
Console.WriteLine("");
}
}
Circle类:
public class Circle:Shape
{
private readonly double PI = 3.14;
public override void GetResults()
{
double results =PI*2*2;
Console.WriteLine("Circle的面积是:"+results.ToString());
}
}
Rectangle类:
public class Rectangle:Shape
{
public override void GetResults()
{
Console.WriteLine("Rectangle的面积是:" + 3 * 4);
}
}
Triangle类:
public class Triangle:Shape
{
public override void GetResults()
{
Console.WriteLine("Triangle的面积是:" + (5 * 4) / 2);
}
}
测试结果类:
class Program
{
static void Main(string[] args)
{
Shape shap = null;
shap = new Circle();
shap.GetResults();
shap = new Rectangle();
shap.GetResults();
shap = new Triangle();
shap.GetResults();
Console.Read();
}
}
4.C++派生类和基类函数的定义
基类中用virtual关键字做修饰,在派生类中定义函数
class Base
{
public:
virtual int defvf() {。}; // 定义defvf为虚函数
}
class B1:public Base
{
public:
int defvf() {。}; // 派生类中定义 defvf函数
}
class B2:public Base
{
public:
int defvf() {。}; // 另一个派生类中定义的defvf函数
}
在运行时编译器决定使用基类中定义的函数还是派生类定义的函数!!!!
5.派生类怎么写啊
#include <iostream>
using namespace std;
class Father1
{
public:
Father1(int x=0)
{this->x=x;cout<<;"调用基类Fahter1"<<endl;}
~Father1()
{cout<<"Father1 Destructor"<<endl;}
private:
int x;
};
class Father2
{
public:
Father2(int x2=0)
{this->x2=x2;cout<<;"调用基类Fahter2"<<endl;}
~Father2()
{cout<<"Father2 Destructor"<<endl;}
private:
int x2;
};
class C1
{
public:
C1(int x=0)
{this->x=x;cout<<;"调用对象成员C1"<<endl;}
~C1()
{cout<<"C1 Destructor"<<endl;}
private:
int x;
};
class C2
{
public:
C2(int x=0)
{this->x=x;cout<<;"调用对象成员c2"<<endl;}
~C2()
{cout<<"C2 Destructor"<<endl;}
private:
int x;
};
class Son:public Father1,public Father2
{
public:
Son(int x1=0,int x2=0,int x3=0,int x4=0,int x5=0):Father1(x1),Father2(x2),c1(x3),c2(x4)
{new_x=x5;cout<<;"调用子类Son"<<endl;}
~Son()
{cout<<"Son Destructor"<<endl;}
private:
int new_x;
C2 c2;
C1 c1;
};
void main()
{
Son s;
}