为什么我一运行,体积和面积都是乱码 ?
求立方体的面积和体积。
#include
using namespace std;
class Cube
{
public:
//设置长
void setL(int L)
{
int m_L = L;
}
//获取长
int getL()
{
return m_L;
}
//设置宽
void setW(int W)
{
int m_W = W;
}
//获取宽
int getW()
{
return m_W;
}
//设置高
void setH(int H)
{
int m_H = H;
}
//获取高
int getH()
{
return m_H;
}
//获取立方体面积
int calculateS()
{
return 2 * m_L * m_W + 2 * m_W * m_H + 2 * m_L * m_H;
}
//获取立方体体积
int calculateV()
{
return m_L * m_W * m_H;
}
private:
int m_L;
int m_W;
int m_H;
};
int main()
{
Cube T;//创建立方体的对象,实例化。
T.setL(10);
T.setW (10);
T.setH (10);
cout <<"面积为: " <<T.calculateS()<< endl;
cout << "体积为: " << T.calculateV() << endl;
}#include
using namespace std;
class Cube
{
public:
//设置长
void setL(int L)
{
int m_L = L;
}
//获取长
int getL()
{
return m_L;
}
//设置宽
void setW(int W)
{
int m_W = W;
}
//获取宽
int getW()
{
return m_W;
}
//设置高
void setH(int H)
{
int m_H = H;
}
//获取高
int getH()
{
return m_H;
}
//获取立方体面积
int calculateS()
{
return 2 * m_L * m_W + 2 * m_W * m_H + 2 * m_L * m_H;
}
//获取立方体体积
int calculateV()
{
return m_L * m_W * m_H;
}
private:
int m_L;
int m_W;
int m_H;
};
int main()
{
Cube T;//创建立方体的对象,实例化。
T.setL(10);
T.setW (10);
T.setH (10);
cout <<"面积为: " <<T.calculateS()<< endl;
cout << "体积为: " << T.calculateV() << endl;
}
#include <iostream>
using namespace std;
class Cube {
public:
//设置长
void setL(int L) {
//int m_L = L;
this->m_L = L; // 使用类的使用变量接收赋值
}
//获取长
int getL() {
return m_L;
}
//设置宽
void setW(int W) {
//int m_W = W;
this->m_W = W;
}
//获取宽
int getW() {
return m_W;
}
//设置高
void setH(int H) {
//int m_H = H;
this->m_H = H;
}
//获取高
int getH() {
return m_H;
}
//获取立方体面积
int calculateS() {
return 2 * m_L * m_W + 2 * m_W * m_H + 2 * m_L * m_H;
}
//获取立方体体积
int calculateV() {
return m_L * m_W * m_H;
}
private:
int m_L;
int m_W;
int m_H;
};
int main() {
Cube T;//创建立方体的对象,实例化。
T.setL(10);
T.setW(10);
T.setH(10);
cout << "面积为: " << T.calculateS() << endl;
cout << "体积为: " << T.calculateV() << endl;
}
体积和面积都是数字,怎么会乱码呢
你的代码到底是怎么写的呢?
是不是printf指定的格式不对啊,如果是浮点数要用%f,是整型用%d,用错的话可能出奇怪的东西
问题出在类中定义了私有成员变量,但是你设置他的值时并没有使用类的值去接收,而是另外自己又定义了一个相同名字的变量去接收,这就导致输出的是乱值。解决办法,使用类内部私有成员变量去接收设置的值。
//设置长
void setL(int L) {
//int m_L = L;
this->m_L = L;
}
//设置宽
void setW(int W) {
//int m_W = W;
this->m_W = W;
}
//设置高
void setH(int H) {
//int m_H = H;
this->m_H = H;
}
到此问题解决,点个采纳吧!
问一下,一运行什么东西?