// dog.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
class Rectangle {
public:
Rectangle(int x, int y){
length= x ;
width=y ;
}
Rectangle(int a){
side=a;
}
void area1();
void area2();
private:
int length;
int width;
int side;
int square;
};
int _tmain(int argc, _TCHAR* argv[])
{ int x, y,cls,a;
cout << "请选择计算长方形面积输入1 计算正方形面积输入2:" << endl;
cin >> cls;
if (cls == 1) {
cout << "请输入长方形的长和宽:" << endl;
cin >>x >>y;
Rectangle(x, y);
void area1();
}
else if(cls==2){
cout << "请输入正方形的边长"<< endl;
cin>>a;
Rectangle(a);
void area2();
}
return 0;
}
void Rectangle::area1(){
square=length*width;
cout<<"长方形的面积是"<<square<<endl;}
void Rectangle::area2(){
square=side*side;
cout<<"正方形的面积是"<<square<<endl;}
你好像没有实例化对象
Rectangle是构造函数,只有创建对象时才能调用
添加一个类成员函数setside()
void Rectangle::setside(int n)
{
side = a;
}
34行应该是
Rectangle rect(x, y);
35行:
rect.area1();
40 41行去掉
然后在那添加:
rect.setside(a);
rect.area2();
意思是你的Rectangle类有两个有参构造函数,但是却没有作为默认构造函数的无参构造函数
增加:
Rectangle() {}
就行了
#include<iostream>
using namespace std;
class Rectangle {
public:
Rectangle(int x, int y);
Rectangle(int a);
Rectangle();
void area1();
void area2();
private:
int length;
int width;
int side;
int square;
};
int main()
{
int x, y, cls, a;
cout << "请选择计算长方形面积输入1 计算正方形面积输入2:" << endl;
cin >> cls;
if (cls == 1) {
cout << "请输入长方形的长和宽:" << endl;
cin >> x >> y;
Rectangle(x, y);
void area1();
}
else if (cls == 2) {
cout << "请输入正方形的边长" << endl;
cin >> a;
Rectangle(a);
void area2();
}
return 0;
}
Rectangle::Rectangle(int x, int y) {
length = x;
width = y;
side = 0;
square = 0;
}
Rectangle::Rectangle(int a) {
side = a;
length = 0;
width = 0;
square = 0;
}
Rectangle::Rectangle()
{
length=0;
width=0;
side=0;
square=0;
}
void Rectangle::area1() {
square = length * width;
cout << "长方形的面积是" << square << endl;
}
void Rectangle::area2() {
square = side * side;
cout << "正方形的面积是" << square << endl;
}
改了之后怎么把参数传给计算面积函数