-1

有以下程序:

#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

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

4

3 回答 3

3

你应该写Base::assign();

于 2013-08-03T17:54:44.700 回答
1

怎么样:

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

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

于 2013-08-03T17:55:11.277 回答
0

如果它应该7在两种情况下,那么这将是:

class Hijo: public Base
 {
  public:
   void assign()
    {
     Base::assign();
    }
 };
于 2013-08-03T17:51:17.210 回答