1.C++中抽象类的定义
定义:
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”。[cpp] view plaincopyprint?virtual void funtion1()=0
virtual void funtion1()=0。
2.c#中定义一个抽象类,里边有两个虚方法,虚函数,分别求周长和面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
public abstract class Shape
{
// 面积
public abstract double Area();
// 周长
public abstract double Circumference();
}
public class Circle : Shape
{
private float radius;
public Circle(float radius)
{
this.radius = radius;
}
// 圆面积
public override double Area()
{
return Math.PI * radius * radius;
}
// 圆周长
public override double Circumference()
{
return Math.PI * 2 * radius;
}
}
class Program
{
static void Main(string[] args)
{
Circle c = new Circle(10);
Console.WriteLine("面积为:{0}", c.Area());
Console.WriteLine("周长为:{0}", c.Circumference());
}
}
}
3.用C++编写 抽象类的问题
#include<iostream>
using namespace std;
class shape
{
private:
double edge;
public:
virtual double area()=0;
void printArea()//输出面积函数在基类中,由子类继承
{
cout<<this->area()<<endl;
}
};
class circle :public shape
{
private:
double radius;//半径
public:
circle(){}
circle(double r)
{
radius=r;
}
double area()
{
double s=3.14*radius*radius;
return s;
}
};
class rectangle:public shape
{
private:
double len,wid;
public:
rectangle(double l,double w)
{
len=l;
wid=w;
}
double area()
{
double s=len*wid;
return s;
}
};
class triangle:public shape
{
private:
double height,edge;
public:
triangle(double h,double e)
{
height=h;
edge=e;
}
double area()
{
double s=height*edge/2;
return s;
}
};
int main()
{
circle a(3.0);
rectangle b(3.0,4.0);
triangle c(4.0,3.0);
a.printArea();//圆形面积
b.printArea();//矩形面积
c.printArea();//三角形面积
return 0;
}
4.这个抽象类怎么写
设置名字和长度2个成员变量 然后在构造方法里用this关键字传值就可以了
public abstract class Ship {
//这2个是序列化用的
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
//设置2个成员变量
private String name;
private int length;
//这个是你定义的带参构造方法
public Ship(String name, int length) {
//this关键字传值
this.name=name;
this.length=length;
}
}//你这里少了一个括号
--------------------------------------------------------------------
你把这个类定为抽象类 我不知道你后面还有没有代码 也可能你有抽象方法没有放上来……如果没有的话不建议使用abstract 修饰该类 因为抽象类不能实例化
5.求一个c编程定义一个抽象类容器类,其中定义了若干纯虚函数,实现
#includeusing namespace std;const double pi=3。
14; //π的值double a=0; //表面积double v=0; //体积class Container{ //声明抽象类protected: double radius;public: Container(double r) //构造函数 {radius=r; } virtual double area()=0; //纯虚函数,求表面积 virtual double volume()=0; //纯虚函数,求体积 virtual void print()=0; //纯虚函数,输出相关信息};class Cube:public Container{ //声明正方体的派生类public: Cube(double r):Container(r) {} double area() //定义虚函数area { return a=6*radius*radius; } double volume() //定义虚函数volume { return v=radius*radius*radius; } void print() { coutarea(); //既然已经定义了print()输出信息了,这就不用cout,直接在p->print即可输出信息,以下类同 p->volume(); p->print(); coutarea(); p->volume(); p->print(); coutarea(); p->volume(); p->print(); cout}分不好拿啊。
转载请注明出处育才学习网 » c中定义抽象类怎么写