菜鸟进击过程中忽略的知识点

编程实践中经常会忽略一些比较小的知识点,归根究底还是基础不够扎实,因此把这些零散的内容总结一下来夯实基础(知识改变命运,为了大电视、大沙发、大卫生间)

  1. Halcon与C++联合编程时,利用输出流输出Halcon类型的变量,此时需要进行强制类型转换
  2. 若函数的返回类型为byte(取值范围0-255),当返回值为-1时,返回255
  3. rhs(right hand side)右值
  4. vs默认编译器是CL.exe,链接器是link.exe
  5. 大多数编译器规定,内存地址为0的地方不能写操作。例如:int *p=NUll;*p=2;此语句会报错。
  6. 在C#中可以使用字符串作为switch语句的判别条件,但是在C++中只能使用整数,字符或运算符号等在ASC||表中有对应整数的符号
  7. 结构体可以嵌套使用。结构体可以包含结构体自身指针,但绝不能包含结构体自身对象。
  8. 结构体指针变量必须赋予一个有效的结构体对象地址,否则无法调用结构体内的数据
  9. 创建对话框分两步:1创建新的对话框模板 2生成对话框类 MFC中创建基于对话框的程序会自动创建对话框模板和对话框类
  10. 当返回局部对象的值时,会产生一个临时对象,局部对象将值拷贝给该临时对象(拷贝构造),所以当函数结束时,尽管局部已经析构了,但是它保存了一个副本在临时对象中,当函数接收完局部对象的值后(其实此时又进行了一次拷贝)临时对象析构。
    但返回局部对象的引用时,就出问题了,因为引用相当于是一个别名,也就是说返回局部引用所对应的内存块的内容给函数返回的接收对象,当函数结束时,局部对象被析构,内存块的内容变为未定义内容,所以出错。指针也是同样的原因。
    11.如果提示exe拒绝访问而导致编译出错:应该是程序在后台运行,所以不可访问。此时在后台关闭该程序或重启机器即可。

你可能感兴趣的:(#,C++,C++,visual,studio)