如何在没有赋值运算符的情况下为变量赋值

时间:2013-08-03 17:43:06

标签: c++ variable-assignment assignment-operator

有以下计划:

#include <iostream>
using namespace std;

class Base
{
public:
    int f;
virtual void assign(){
    f = 7;
}
};

class Hijo: public Base
{
public:
    void assign()
    {
    //Insert solution here      
    }
};

int main(){
    Hijo h;
    h.assign();
    printf("%d",h.f);
    return 0;
}

在注释“//在此处插入解决方案”中,应包含一行指令,以使用赋值运算符(++,+ =,=,...)

为f赋值7 WITHOUT

编辑:我复制代码时出错了。这两个地方都是7个。

3 个答案:

答案 0 :(得分:3)

你应该写Base::assign();

答案 1 :(得分:1)

怎么样:

void assign()
{
   int seven(7); memcpy(&f, &seven, sizeof(seven));
}

这显然是一项完全没用的练习,也不是很干净。但我认为它符合任务的标准。

答案 2 :(得分:0)

如果在两种情况下都应该7,那么这样做:

class Hijo: public Base
 {
  public:
   void assign()
    {
     Base::assign();
    }
 };