精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
回车既是输入的结束,也是输入的内容。
char c1,c2;
c1=getch();
c2=getch();
上面代码在输入了a和回车,2个字符时,c1,c2的值是多少?
:安全的指针,全权委托,修改了引用,也就修改了引用关联的对象的值。
Int b=10;
int &a=b;
a=3;
则a和b的值都是3.
引用可以出现在定义、函数返回值和函数参数里。引用可以当左值。
修饰变量,则变量不可更改值。修饰成员函数,则成员函数不可修改类成员变量。修饰参数,则实参不会被改变。
这样的返回是返回自己,操作符重载时为了实现级联,比如cout<<a<<b这样的形式,要让操作符函数能够返回自己,这样才能后续的调用,例子语句要理解为(cout<<a)<<b,前面的()如果没返回,则<<b就执行不了。操作符执行时实际执行的是操作符函数,函数返回自己才可以后续调用。this代表指针形式的自己,加了*就是对象形式的 自己。
类成员函数里怎么定义和使用成员变量:从C过渡到C++时,初学者往往不知道成员函数处理的数据来自哪里?这是对类和对象的概念理解不透导致的。对象调用成员函数,则成员函数则处理自己的数据。就象细胞内部有功能物质也有营养物质,功能物质处理的目标就是细胞内的营养物质。各个对象的区分和独立,是C++系统底层处理好的,这不是我们关心的。成员函数是各个本尖对象都能调用的,但是谁调用,就在谁的环境里执行成员函数。
今天一个面授学员定义了个宏,
#define N 10
又写了语句
Scanf(“%d”,&N);
这是对宏不理解。宏不是变量,宏是一种标记,这个标记可以被替换。标记是提供源代码语句转换的一种手段,它不参与运行时状态改变的处理。替换可以是简单的,也可以是复杂的。
大家先想想,编程之道里源代码里哪里出现了全局变量?和全局变量一起用的关键字是什么?
全局变量要命名直观,意思明确。局部变量不能和全局变量重名。
一般是跨模块时使用全局变量,比如线程。跨几个函数时,也有需要。如果某个结果是临时提供给函数调用者用,可以用返回值、指针或引用,尽量不要用全局变量。
某个源文件内部使用的全局变量,记的加static。比如static int a;这里的static是指,另外文件不让用。
大的项目里全局变量会有很多,这时候会建个独立的头文件和源文件来处理全局变量,源文件定义,头文件声明。这时候就不会再允许程序员在自己的源文件里再新加全局变量。因为全局变量命名一样,编译是会有冲突的。