gpt4 book ai didi

c++ - 数据类型 inst 转换正确吗?

转载 作者:行者123 更新时间:2023-11-28 00:38:39 24 4
gpt4 key购买 nike

好的,所以我的 .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 中得到了一个零。

最佳答案

你以错误的方式赋值:

更新:

triangle::triangle(float base, float height)
{
base=_base;
height=_height;
}

到:

triangle::triangle(float base, float height)
{
_base = base;
_height = height;
}

编辑:

另外正如@WhozCraig 提到的,应该使用 float 作为 1/2,或者只是

_base * _height / 2.0

关于c++ - 数据类型 inst 转换正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com