为什么这个c ++程序不起作用?

时间:2014-04-08 18:13:32

标签: c++

编写程序以获得基类 数 和两个派生类: 广场和立方体 。 您将计算平方数(a * a )和 数字的立方体(a * a * a)

#include <iostream>
#include <conio.h> 
using namespace std;
class Number 
{
protected:
    int a ;
    int y;
public: 
    a*a = y;
    a*a*a=y 
};
 class Square : Number 
{
    int a , y;
public:
     (a*a) = y;
};

class Cube : Number
{
    int a, y;
public:
    (a*a*a) = y;
};
int main()
{
    int a;
    cout << "Enter number "<< endl;
    cin >> a >>endl ; 
    cout << " the Square of this number is : " << (a*a); 
    cout << "Enter number ";
    cin >> a;
    cout << " the cube of this number is : " << (a*a*a);
    return (0);
}

1 个答案:

答案 0 :(得分:4)

public: 
  a*a = y;
  a*a*a=y 

不是一个功能。在

private:
protected:
public:

部分定义了如何在类之外看到函数或变量。您不能在其中进行任何分配:您需要将赋值放入函数中,例如int multiply()之类的函数或类似函数:

class Number 
{
protected:
    int a ;
    int y;
public: 
    int squared(int a);
    int cubed(int a);
};

int Number::squared(int a) {
    y = a * a;
    return y;
}

int Number::cubed(int a) {
    y = a * a * a;
    return y;
}

您的编译器错误来自您正在执行(a*a) = y的事实,这是

  1. 在功能之外,
  2. 格式错误,无法将(a*a)的值分配给y。您需要y = (a*a)代替。