Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在没有赋值运算符的情况下为变量赋值_C++_Variable Assignment_Assignment Operator - Fatal编程技术网

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

C++ 如何在没有赋值运算符的情况下为变量赋值,c++,variable-assignment,assignment-operator,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

具有以下程序:

#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;
}
#包括
使用名称空间std;
阶级基础
{
公众:
int f;
虚拟空分配(){
f=7;
}
};
类Hijo:公共基
{
公众:
无效分配()
{
//在此处插入解决方案
}
};
int main(){
Hijo h;
h、 赋值();
printf(“%d”,h.f.);
返回0;
}
在这里的注释“//插入解决方案”中,应包含一行指令,以便在不使用赋值运算符(++,+=,=,,…)的情况下为f赋值7


编辑:复制代码时出错。这两个位置都是7。

如果两种情况下都是7,则可以:

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

您应该编写
Base::assign()

如何:

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

这显然是一个完全无用的练习,而且也不是很干净。但我认为它满足了任务的标准。

。。。然后
f
5
结束,而不是
7
。当然……给我一个删除答案的理由;)你的答案和我的答案大不相同,尽管…;)它应该在一行中。无论如何,谢谢:)现在是一行…;)@你想干什么。memcpy和assign将由编译器分解为同一个部分。虽然我同意这可能是原始测验设置程序所期望的解决方案,但我不明白为什么不删除
hijo::assign
函数,让编译器在没有第二个函数的情况下调用
Base::assign