小编use*_*913的帖子

为什么Matlab可以将空矩阵与单个矩阵进行比较?

我只是好奇为什么Matlab可以将空矩阵与单个矩阵进行比较.特别是

>> [] == [1]

ans =

[]

这样做似乎很奇怪,我只是想知道为什么会这样做.这也适用于其他比较操作(<=,<,> =,>,!=).如果行或列的大小大于1,则会出错.

谢谢!

编辑:我也相信他们会为其他操作员执行此操作,例如加法,减法等.

comparison matlab matrix

9
推荐指数
1
解决办法
333
查看次数

C++一个参数布尔构造函数和"new"关键字:逻辑错误

我在c ++中有以下类

class MyClass {

public:
  bool flag;

  MyClass (bool flag = false) {
    this->flag = flag;
  }
...
};
Run Code Online (Sandbox Code Playgroud)

在我的主要(用于测试)我有类似的东西

int main() {
 MyClass number1 = MyClass(true);
 MyClass number2 = MyClass(false);
 MyClass number3 = new MyClass(false);
 MyClass number4 = new MyClass(true);
 MyClass number5 = new MyClass();
 std::cout << number1.flag << number2.flag << std::endl;
 std::cout << number3.flag << number4. flag << number5.flag << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

和我的输出(想象布尔输出true或false,输出格式更好)

true, false 
true, true, true
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用"new"关键字创建"MyClass"对象时,无论我做什么或不放入参数构造函数,它总是将flag变量设置为true.

它适用于不使用"new"但不使用"new"的构造函数.我知道在使用和不使用关键字new之间唯一真正的区别是,如果不使用它,则在堆栈上创建变量,否则在堆上创建变量.我认为这不会出现任何错误.

如果我希望它正常工作,需要改变什么?我在类中有其他方法可以成功修改flag变量,但初始化它不起作用.我也尝试使用成员初始化列表来构造变量,但这也不起作用.

谢谢你的帮助!

编辑:这是编译的代码.我有两个文件,Test.c ++和AbstractCell.h.AbstractCell是MyClass,当这段代码运行时输出"isAlive:1"

 void test_abstract_2(){
   AbstractCell …
Run Code Online (Sandbox Code Playgroud)

c++ constructor arguments

3
推荐指数
1
解决办法
1080
查看次数

标签 统计

arguments ×1

c++ ×1

comparison ×1

constructor ×1

matlab ×1

matrix ×1