标签: assignment-operator

如何在C++中从int到object的赋值?

class phone {  
    public:  
        phone(int x) { num = x; }
        int number(void) { return num; }
        void number(int x) { num = x; }

    private:
        int num;
};

int main(void)
{
    phone p1(10);

    p1 = 20;    // here!

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

嗨,大家好

我刚刚宣布了一个类似上面的简单类.
之后我将int值赋给了该类的对象,然后就可以了!
(我打印了它的价值.它存放得当)

如果没有带有int参数的构造,则发生编译错误.
所以,我认为它与构造函数有关.是对的吗?

请给我一个很好的解释.
谢谢.

c++ constructor variable-assignment assignment-operator

0
推荐指数
1
解决办法
2538
查看次数

使用javascript使用for循环声明变量

我试图使用for循环声明变量,然后测试colsrols是否相同.如果是,它将运行递归函数.但是,我在javascript中做的很麻烦.有人可以帮忙吗?

现在,它说,意想不到的变化==进行比较时,col.1col.2.我也尝试col+jfor循环,但确实如此invalid left-hand side assignment

for (var i = 0; i < 2; i++) {
  var col = {};
  col.i = Math.floor(Math.random() * cols);
  col.i = Math.floor(Math.random() * rows);
}

if (col.1 == col.2 && row.1 == row.2) {
  return this.getRandomBlock();
}
Run Code Online (Sandbox Code Playgroud)

javascript variables for-loop object assignment-operator

0
推荐指数
1
解决办法
512
查看次数

赋值运算符String对象

我是JAVA编程的新手.我在书中看过

String a="Hello";
String b="Hello";
System.out.println(a==b);
Run Code Online (Sandbox Code Playgroud)

这应该返回false,因为a&b引用String对象的不同实例.

Bcoz赋值运算符比较对象的实例,但我仍然得到一个真实的.
我正在使用Eclipse IDE.

书中的例子如下:

String s = "s";
String sToo = "s";
System.out.println(a == b);
System.out.println(s == sToo);
Run Code Online (Sandbox Code Playgroud)

对于s == sToo,该位代码打印"false".那是因为s和sToo是对String对象的不同实例的引用.因此,即使它们具有相同的值,它们在相等运算符的眼中也是不相等的.此外,s =="s"打印为false,因为字符串文字产生String类的另一个实例.

书名:JAVA 7 for Absolute Beginners

java object assignment-operator comparison-operators

0
推荐指数
1
解决办法
3092
查看次数

C++拷贝构造函数,带指针

当我们定义复制构造函数时,是否需要清除我们正在编写的对象的内容?我正在实现一个二叉搜索树,并想知道我是否会有内存泄漏,除非我在实现复制构造函数和赋值运算符时清理它.

c++ copy-constructor assignment-operator

0
推荐指数
1
解决办法
113
查看次数

=运算符是否在C++中调用构造函数/ new?

假设我有一个(不可变的)矩阵类,它在构造函数中动态创建一个数组,并在解构器中删除它.

template <typename T>
class matrix {
private:
    T* data;
public:
    size_t const rows, cols;
    matrix(size_t rows, size_t cols) : rows(rows), cols(cols) {
        data = new T[rows*cols];
    }
    ~matrix() {
        delete [] data;
    }
    //access data
    T& operator()(size_t row, size_t col) {
        return data[row*cols + col];
    }
    matrix<T>& operator=(const matrix<T>& other) {
        //what will this->data contain? do I need to delete anything here?
        //should I call the constructor?
        rows = other.rows;
        cols = other.cols;
        data = new T[rows*cols];
        std::copy(&data[0],&data[0] + …
Run Code Online (Sandbox Code Playgroud)

c++ arrays oop assignment-operator assign

0
推荐指数
1
解决办法
90
查看次数

C中赋值操作的未知行为

我不确切地知道从这种结构中返回真假的案例.你能描述一下吗?Sry,如果是谷歌搜索,我还没找到.

( (struct->param = param_init()) == NULL )
Run Code Online (Sandbox Code Playgroud)

c boolean assignment-operator

0
推荐指数
1
解决办法
106
查看次数

C:赋值运算符是否深拷贝?

对于标量值,赋值运算符似乎将右侧的值复制到左侧。这对复合数据类型有何作用?例如,如果我有一个嵌套结构

struct inner {
    int b;
};

struct outer {
   struct inner a;
};

int main() {
   struct outer s1 = { .a = {.b=1}};   
   struct outer s2 = s1;
}
Run Code Online (Sandbox Code Playgroud)
  • 赋值是否递归地深度复制值?
  • 将结构传递给函数时会发生同样的情况吗?

通过实验似乎确实如此,但是有人可以指出行为的规范吗?

c struct assignment-operator

0
推荐指数
1
解决办法
708
查看次数

在 C++ 中,我可以在定义自己的复制构造函数后跳过定义赋值运算符吗?

当我定义一个类时,如果我需要深拷贝,我需要定义我自己的拷贝构造函数。那么,是否也需要定义赋值运算符呢?如果跳过,赋值是否做浅拷贝?

c++ oop copy-constructor assignment-operator c++11

0
推荐指数
1
解决办法
75
查看次数

在没有 .get() 的情况下从结构返回成员

假设我有以下结构

template<typenameT>
class Foo
{
  T value;
  public:
    // some public logic
}
Run Code Online (Sandbox Code Playgroud)

在这一点上我想要的就是能够说

Foo<int> A;
Run Code Online (Sandbox Code Playgroud)

然后从中获取值,A就好像它“只是 T 类型的值”一样,并按如下方式使用它

int val1 = A;  // must correspond to int val1 = A.value
               // and
int& val2 = A; // must return reference of A.value and so on
Run Code Online (Sandbox Code Playgroud)

我真的不想用户设置/获取,因为我将经常编写此类调用并希望尽可能简化代码。

首先,我认为重载 = 可能会有所帮助,但我没有做对。它与赋值运算符相反,例如Foo<int> A; int val = 1; A = val;

编辑:网上肯定有答案,但我在“赋值”关键字下找不到它。

c++ assignment-operator

0
推荐指数
1
解决办法
51
查看次数

C++中赋值运算符的返回类型

想象我有一个这样的课程:

public:
A(const int a);
A& operator = (const A&);
};
Run Code Online (Sandbox Code Playgroud)

为什么“=”运算符的返回类型必须是“A&”而不是简单的“A”?

c++ operator-overloading assignment-operator

0
推荐指数
1
解决办法
67
查看次数