C++笔记

来源:互联网 发布:cc域名注册哪里便宜 编辑:程序博客网 时间:2024/06/06 23:50

1、C++ 中,类名 & 变量名 是什么意思?

这是c++相对于c新引入的一个概念——引用引用的性质基本和指针一样。在平时写函数的时候,假如你在调用的时候传了一个参数v而没用“引用”或者“指针”,那么你写的函数里的v和主程序里的v是毫不相干的。就是函数里面把v的值变了,在函数体结束了以后,主程序里的v依然保持函数调用前的值。但是有的时候你需要让两个v都改变。比如说你想写一个swap(a,b)函数(交换a,b的值)。这个时候你用普通的传参数的方法是不行的。要么你用指针void swap(int *pointa,int *pointb)要么你在函数定义的时候就申明,传的参数是一个引用void swap(int &a,int &b)【注:这两个语句都是函数申明】就我现在的编程体会来看,引用和指针基本没有功能上的区别,唯一的区别就是在函数体里面使用的时候指针有指针的一套赋值、取类成员的方法,而引用的使用方法基本和一般变量一样

2、C语言中#include后用引号与尖括号的区别是什么?

<>表示程序将会首先且只会去你的系统类库目录查找你所想引入的类或者包,一般用来包含标准头文件;""表示程序会首先从你的当前目录(包括设置的所有附加包含目录)查找你所想引入的类或者包,如果没有找到,将去系统类库目录找,一般用来包含自定义头文件
对于#include  <filename.h> ,编译器从标准库路径开始搜索 filename.h对于#include  “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
使用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会在源代码所在目录搜索;使用双引号则相反,会先在源代码目录里搜索。这就意味着,当系统里(如/usr/include/里)有一个叫做math.h的头文件,而你的源代码目录里也有一个你自己写的math.h头文件,那么使用尖括号时用的就是系统里的;而使用双引号的话则会使用你自己写的那个。

3、命名空间和类

参考http://blog.csdn.net/qingkongyeyue/article/details/54290121

using namespace std;

std 是一个命名空间..不同的命名空间可以有相同的类名被定义 ..using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的也可以在全局空间中定义,只要名字空间不一样即可..)..否则可以默认名字空间中有std.便不用std::来修饰它是C++新标准中有的,解决多人作编大程序时名字冲突问题。比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人 如果你用#include<iostream.h>就不需写这句话(旧标准)。但是如果你用#include<iostream>就必须要写。
高三年级五班 的张三。
高一年级三班 的张三。
命名空间就类似 高三年级五班,高一年级三班。 方便使用时区别不同空间下具有相同名字的类。也可以认为是在整理和归纳各种类的放置

一般程序的开发都是有多个人共同开发的,为了防止不同模块的类和函数重名,所以采用命名空间来区分,这样就不怕同名的混乱了。类就是面向对象所特有的,通过类来创建把自然界的事物封装起来来使用。
4、函数可以嵌套调用,但不可以嵌套定义
5、使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度
%-30.4f
  • -: 左对齐
    30: 最小字段宽度
    .4: 精确度保留小数4位
    f: double精度浮点数
    e: 科学计数法 
注意这里的转义字符(%作为转义符,两个%才相当于1个% 
6、运算符

7、case或default后如果没有break语句,则从相匹配的标签到break语句或switch末尾的每一条语句都将被处理,也就是执行完default语句后,还需执行case 1分支,遇到break才能退出。
8、#pragma comment(lib,"ws2_32.lib")是什么意思
9、转义字符
10、C++问题 ::前面没有类名
说明这个是全局变量或公共函数,并且不属于任何命名空间。仅此而已。

6、atoi函数
atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。函数原型:int atoi(const char *nptr);参数   nptr为字符串指针说明:参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。包含在头文件stdlib.h中

0 0
原创粉丝点击