Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(C+;+;)乘法不会给出预期的结果 “这是我第一次编写C++程序,我现在使用的代码是:块,我很确定这个问题我可能根本不涉及这个程序,但是无论如何……_C++ - Fatal编程技术网

(C+;+;)乘法不会给出预期的结果 “这是我第一次编写C++程序,我现在使用的代码是:块,我很确定这个问题我可能根本不涉及这个程序,但是无论如何……

(C+;+;)乘法不会给出预期的结果 “这是我第一次编写C++程序,我现在使用的代码是:块,我很确定这个问题我可能根本不涉及这个程序,但是无论如何……,c++,C++,我想写一个简单的代码,创建两个“盒子”,计算它们的体积并打印在终端上。我在一个cpp文件中编写了以下代码: #include<iostream> using namespace std; class Box { public: double length; double breadth; double height; Box(double l, double b, double h) { l=length; b=br

我想写一个简单的代码,创建两个“盒子”,计算它们的体积并打印在终端上。我在一个cpp文件中编写了以下代码:

#include<iostream>
using namespace std;

class Box
{
public:
    double length;
    double breadth;
    double height;

    Box(double l, double b, double h)
    {
      l=length;
      b=breadth;
      h=height;
    }
};

int main()
{
    double volume = 0.0;
    Box BoxA(2.0, 3.2, 6.0);
    Box BoxB(2.5, 4.0, 5.0);
    volume = BoxA.length * BoxA.breadth * BoxA.height;
    cout << "Box a volume = " << volume <<endl;
    volume = BoxB.length * BoxB.breadth * BoxB.height;
    cout << "Box b volume = " << volume <<endl;
    return 0;
}
#包括
使用名称空间std;
类框
{
公众:
双倍长度;
双宽度;
双高;
盒子(双l,双b,双h)
{
l=长度;
b=宽度;
h=高度;
}
};
int main()
{
双体积=0.0;
盒子盒A(2.0,3.2,6.0);
盒子B(2.5,4.0,5.0);
体积=BoxA.长度*BoxA.宽度*BoxA.高度;

cout构造函数为传递的参数赋值

请尝试以下方法:

class Box
{
public:
    double length;
    double breadth;
    double height;

    Box(double l, double b, double h)
    {
      length=l;
      breadth=b;
      height=h;
    }
};

正如其他人提到的,初始化列表和使用<>代码>使用< /COD>可以有其他改进,特别是对C++和C++编程的研究是一个正在进行的旅程,从来不是目的地,但这是对当前问题的直接修复。争论

#include<iostream>

class Box
{
public:
    double length;
    double breadth;
    double height;

    Box(double l, double b, double h)
    {
        length = l; // assign to the member variables, not parameters
        breadth = b;
        height = h;
    }
};

int main(void)
{
    double volume = 0.0;

    Box BoxA(2.0, 3.2, 6.0);
    Box BoxB(2.5, 4.0, 5.0);

    volume = BoxA.length * BoxA.breadth * BoxA.height;
    std::cout << "Box a volume = " << volume << std::endl;

    volume = BoxB.length * BoxB.breadth * BoxB.height;
    std::cout << "Box b volume = " << volume << std::endl;

    return 0;
}
请尝试以下方法:

class Box
{
public:
    double length;
    double breadth;
    double height;

    Box(double l, double b, double h)
    {
      length=l;
      breadth=b;
      height=h;
    }
};

正如其他人所提到的,对于初始化列表和使用<代码>使用可以有其他改进,特别是C++和C++编程的研究是一个正在进行的旅程,从来不是目的地,但这是直接解决问题的直接解决方案。

#include<iostream>

class Box
{
public:
    double length;
    double breadth;
    double height;

    Box(double l, double b, double h)
    {
        length = l; // assign to the member variables, not parameters
        breadth = b;
        height = h;
    }
};

int main(void)
{
    double volume = 0.0;

    Box BoxA(2.0, 3.2, 6.0);
    Box BoxB(2.5, 4.0, 5.0);

    volume = BoxA.length * BoxA.breadth * BoxA.height;
    std::cout << "Box a volume = " << volume << std::endl;

    volume = BoxB.length * BoxB.breadth * BoxB.height;
    std::cout << "Box b volume = " << volume << std::endl;

    return 0;
}
类框 { 公众: 双倍长度; 双宽度; 双高; 盒子(双l,双b,双h) { length=l;//分配给成员变量,而不是参数 宽度=b; 高度=h; } }; 内部主(空) { 双体积=0.0; 盒子盒A(2.0,3.2,6.0); 盒子B(2.5,4.0,5.0); 体积=BoxA.长度*BoxA.宽度*BoxA.高度; std::cout
#包括
类框
{
公众:
双倍长度;
双宽度;
双高;
盒子(双l,双b,双h)
{
length=l;//分配给成员变量,而不是参数
宽度=b;
高度=h;
}
};
内部主(空)
{
双体积=0.0;
盒子盒A(2.0,3.2,6.0);
盒子B(2.5,4.0,5.0);
体积=BoxA.长度*BoxA.宽度*BoxA.高度;

std::cout编写构造函数的常用方法是使用初始值设定项列表:

Box(double l, double b, double h) : length(l), breadth(b), height(h)
{
}
Box(double length, double breadth, double height)  
    : length(length), breadth(breadth), height(height)
{ }
这可以防止与您完全相同的错误,即交换参数和成员。如果您尝试编写
:l(长度),
编译器会立即告诉您
l
不是
框的成员

您甚至不需要在初始值设定项列表中使用单独的名称:

Box(double l, double b, double h) : length(l), breadth(b), height(h)
{
}
Box(double length, double breadth, double height)  
    : length(length), breadth(breadth), height(height)
{ }

这会使用参数
height
初始化
Box::height

编写构造函数的常用方法是使用初始值设定项列表:

Box(double l, double b, double h) : length(l), breadth(b), height(h)
{
}
Box(double length, double breadth, double height)  
    : length(length), breadth(breadth), height(height)
{ }
这可以防止与您完全相同的错误,即交换参数和成员。如果您尝试编写
:l(长度),
编译器会立即告诉您
l
不是
框的成员

您甚至不需要在初始值设定项列表中使用单独的名称:

Box(double l, double b, double h) : length(l), breadth(b), height(h)
{
}
Box(double length, double breadth, double height)  
    : length(length), breadth(breadth), height(height)
{ }

这确实初始化了
Box::height
,参数
height

不应该
l=length;
等等。相反,应该是
length=l;
吗?在构造函数中,您的赋值方式是错误的!在您选择接受的答案之前,我想指出的是,在构造函数。所有成员变量(以及基类)在构造函数中构造-可以显式地使用初始值设定项,也可以隐式地由编译器使用该构造函数的默认构造函数。通过赋值,这可能会成为一个不必要的默认构造,并伴随以下赋值。对于3个双成员变量来说,这并不是很重要,但在其他情况下可能如此。不应该
l=length;
etc.be
length=l;
相反?在构造函数中,您的赋值方式是错误的!在您选择接受的答案之前,我想指出的是,一般来说,构造函数中的初始值设定项列表应该优先于赋值。所有成员变量(以及基类)在构造函数中构造-可以显式地使用初始值设定项,也可以隐式地由编译器使用该构造函数的默认构造函数。通过赋值,这可能会成为不必要的默认构造,并伴随以下赋值。对于3个双成员变量来说,这并不是很重要,但在其他情况下可能会如此。