// test7.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
using namespace std;
class A //少 {
{
public:
void display()
{
cout<<"A::display()is called!"<
}; //少 ;
class B //少 {
{
public:
void display()
{
cout<<"B::display()is called!"<
};
class C: public A, public B
{
int a;
public:
C(int i=0){a=i;}
void show(){ display();} //会产生二义性
};
int main(int argc, char* argv[])
{
C obj;
obj.display(); //会产生二义性
return 0;
}
/*******
类C从基类A,B中都继承了display()函数,我感觉就算把基类A,B中的函数都声明为虚函数,也不能解决二义性的问题.
而且虚函数的声明,是为了产生个公共接口,实现多态性.
应该用虚继承来消除二义性.举个例子:
class A //定义基类A
{
public:
void display();
};
class B:virtual public A //A为B的虚基类
{
};
class C:virtual public A //A为C的虚基类
{
};
class D:public B,public C //类D继承了类B,类C
{
};
//在主函数中定义个对象d,如果没有用到虚继承,就会产生二义性.
int main()
{
D d;
d.diplay()
return 0;
}
********/
#include
class Point
{
double x,y;
public:
Point(double i,double j)
{x=i;y=j;}
virtual double Area() //加上关键字virtual
{return 0;}
};
class Rectangle:public Point
{
double w,h;
public:
Rectangle(double i,double j,double k,double l):Point(i,j)
{w=k;h=l;}
double Area(){return w*h;}
};
void fun (Point&s)
{
cout<
void main()
{
Rectangle rec(3.5,15.2,5,28);
fun(rec);
}
/******
在class Point{};的Area()前加上关键字virtual 就能实现多态性了.
楼主学C++到了虚继承和虚函数了吧..多看看C++教程里的例题吧...
******/
你以为你是谁,考官?还是雇工头老板呐?
“在main函数中,要求创建一个Box类型的对象,并求出该对象的体积。”
还要求者要求那的,请问你是猪吗,还需要人喂饭吗?摆个破题还说是改错题
还“满意再加50”,给小费呢?
那点破分,谁稀罕
#include
using namespace std;
class box
{
private:
double length;
double width;
double height;
double mvol;
public:
box(double x,double y,double z)
{
length=x;
width=y;
height=z;
mvol=x*y*z;
}
void volume()
{
cout<<"length="<
骂得好,鄙视发作业题的,自己从来不思考!