好的,所以我的 .exe 给了我一个零,所以我猜测数据类型没有正确转换。抱歉,我是 c++ 新手,来自 c。每当我在 c 中遇到这个问题时,通常都会被截断,但我无法找出我做错了什么。
//shape.h
#ifndef SHAPE_H
#define SHAPE_H
class shape
{
public:
shape();
virtual float area()=0;
};
#endif SHAPE_H
//shape.cpp
#include <iostream>
#include "shape.h"
using namespace std;
shape::shape()
{
}
//triangle.h
#include"shape.h"
class triangle: public shape
{
public:
triangle(float,float);
virtual float area();
protected:
float _height;
float _base;
};
//triangle.cpp
#include "triangle.h"
triangle::triangle(float base, float height)
{
base=_base;
height=_height;
}
float triangle::area()
{
return _base*_height*(1/2);
}
//main.cpp
#include <iostream>
#include "shape.h"
#include "triangle.h"
using namespace std;
int main()
{
triangle tri(4,2);
cout<<tri.area()<<endl;
return 0;
}
出于某种原因,当我应该得到 4 时,我在我的 exe 中得到了 0。