C++,一些常用的知识点

1  用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读 性。 C++中是用关键字typedef定义一个标识符来代表一种数据类型,该标识符可以象其它基本类型的标识符一样使用。在用typedef进行类型定 义时,其语法和变量定义很相似。typedef定义的一般形式为: 
   typedef 原类型名 新类型名 
例如: 
   typedef int * intptr; 
定义intptr为一个指向整型的指针类型。变量定义语句: 
   intptr p; 
等价于: 
   int * p; 
   需要 注意 的是:typedef定义的类型只是C++已有类型的别名,而不是新类型。有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更为灵活方便。

2  namespace的使用

有名的命名空间:

namespace 命名空间名 {

声明序列可选

}

无名的命名空间:

namespace {

声明序列可选

}

-------------------------------------------------

命名空间的成员,是在命名空间定义中的花括号内声明了名称。可以在命名空间的定义内,定义命名空间 的成员(内部定义)。也可以只在命名空间的定义内声明成员,而在命名空间的定义之外,定义命名空间的成员(外部定义)。

命名空间成员的外部定义的格式为:

命名空间名::成员名 ……

例如:

// out.h

namespace Outer { // 命名空间Outer的定义

int i; // 命名空间Outer的成员i的内部定义

namespace Inner { // 子命名空间Inner的内部定义

void f() { i++; } // 命名空间Inner的成员f()的内部定义,其中的i为Outer::i

int i;

void g() { i++; } // 命名空间Inner的成员g()的内部定义,其中的i为Inner::i

void h(); // 命名空间Inner的成员h()的声明

}

void f(); // 命名空间Outer的成员f()的声明

// namespace Inner2; // 错误,不能声明子命名空间

}

void Outer::f() {i--;} // 命名空间Outer的成员f()的外部定义

void Outer::Inner::h() {i--;} // 命名空间Inner的成员h()的外部定义

// namespace Outer::Inner2 {} // 错误,不能在外部定义子命名空间

注意:

不能在命名空间的定义中声明(另一个嵌套的)子命名空间,只能在命名空间的定义中定义子命名空间。

也不能直接使用“命名空间名::成员名 ……”定义方式,为命名空间添加新成员,而必须先在命名空间的定义中添加新成员的声明。另外,命名空间是开放的,即可以随时把新的成员名称加入到已有的命 名空间之中去。方法是,多次声明和 定义同一命名空间,每次添加自己的新成员和名称。例如:

namespace A {

int i;

void f();

} // 现在A有成员i和f()

namespace A {

int j;

void g();

} // 现在A有成员i、f()、j和g()

还可以用多种方法,来组合现有的命名空间,让它们为我所用。例如:

namespace My_lib {

using namespace His_string;

using namespace Her_vector;

using Your_list::List;

void my_f(String &, List &);

}

……

using namespace My_lib;

……

Vector<String> vs[5];

List<int> li[10];

my_f(vs[2], li[5]);

使用命名空间

作用域解析运算符(::)

C++,一些常用的知识点,布布扣,bubuko.com

时间: 2024-12-28 21:14:08

C++,一些常用的知识点的相关文章

JS中的一些不常用的知识点。

1:delete关键字:只能删除对象的属性 2:typeof 返回的是字符串(当然是对象的类型) 3:分组选择符:如var a=(2,3,4);//结果是4 4:函数.length   ;是指函数形参的集合 5:函数.arguments  ;//是指函数实参的集合. JS中的数据类型:字符串.数字.布尔.对象.null.Undefined. JS中的一些不常用的知识点.,布布扣,bubuko.com

AngularJS应用,常用数组知识点

AngularJS 1:ng-click,ng-model,ng-bind,ng-class,ng-hide,ng-app 2:placeholder, 3:{}中加入代码":true|false",使用逗号隔开,可以控制包括样式,显示与隐藏等功能,} 1.数组的创建 var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度var arrayObj = n

JS中常用开发知识点

 JS中常用开发知识点 1.获取指定范围内的随机数 2.随机获取数组中的元素 3.生成从0到指定值的数字数组 等同于: 4.打乱数字数组的顺序 5.对象转换为数组 //注意对象必须是以下格式的才可以通过此方式转化为数组 //获取的DOM集合,以及函数的arguments也可以通过此方式转化为数组 6.验证是否为数组 7.获取数组中最大或者最小值 8.清空数组 9.保留指定小数位 10.生成指定长度的随机字母数字字符串 11.找出数组中出现次数最的元素,并给出其出现过的位置 原文地址:https:

前端常用框架知识点收集

前端组件库 搭建web app常用的样式/组件等收集列表(移动优先) 0. 前端自动化(Workflow) 前端构建工具 Yeoman – a set of tools for automating development workflow gulp – The streaming build system grunt – the JavaScript Task Runner F.I.S – 前端集成解决方案 前端模块管理器 Bower – A package manager for the w

java常用基础知识点 (持续追加)

作为一个Java编程人,会经常用上JDK中的大量的API类库,常用的有字符串操作.集合操作.文本操作.输入输出操作.以及网络操作, 常用的包: 1. java.lang Java程序的基础类,字符串,多线程,用的最频繁,不需要import直接调用的2. java.util 常用工具类 ,集合,随机数产生器,日历,时间等3. java.io 文件操作,输入,输出操作4. Java.net 网络操作5. java.sql 数据库访问6. Java.text 处理文字,日期,数字,信息的格式. ecl

css常用小知识点汇总(一)

1.文本过多溢出,怎么让他隐藏变成点点点(...)呢? text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;     //2表示2行,剩下的...隐藏-webkit-box-orient:vertical; 2.nth-of-type(n)与nth-child(n)的区别是啥子呢? nth-of-type(n):表示当前父元素下的所有同类型的第n个子元素. nth-child(n):表示当

开发常用小知识点记录

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #f0eded } span.s1 { } 过时属性和方法提示 DEPRECATED_ATTRIBUTE 标识属性或方法过时 @property (assign, nonatomic) BOOL isLoading DEPRECATED_ATTRIBUTE; - (instancetype)initFromURLWithString:(NSString *)url

Swift学习的第一个demo,讲解了一些常用的知识点

/** 1. OC [UIView alloc] initWithXXX:] Swift UIView(XXX:) 类名() == alloc / init 等价 2. 类方法 OC [UIColor redColor] Swift UIColor.red 3. 访问当前对象的属性,可以不使用'self.' 建议:都不用,在编译器提示的时候,在添加,会对'语境'有更好地体会 原因:闭包(类似于OC中的block),需要使用'self.' 4. 没有';' ';' 的目的是分割语句的,在Swift

转:vue-router 2.0 常用基础知识点之router.push()

转载地址:http://www.jianshu.com/p/ee7ff3d1d93d router.push(location) 除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现.router.push(location)想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL. 当你点击 <rou