注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TOTO

Think and Be Different

 
 
 

日志

 
 

前几天C++的笔记

2006-09-19 19:56:16|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.const 在C++里保存在符号表里,并不在内存中,但是可以用extern强制保存在内存中,它在C语言里是保存在内存中,作为变量的,所以const变量不能作为数组声明的大小。
一般const的用法比较集中在指针上,因为它使程序更安全。
如果程序员以后想在程序代码中改变const这种指针的使用,编译器将给出通知。这大大增加了安全性。
2.Reference Operator &
Holds the address of an object but behaves syntactically like an object.


type-id & cast-expression
 

Remarks
A reference declaration consists of an (optional) list of specifiers followed by a reference declarator. A reference must be initialized and cannot be changed.

Any object whose address can be converted to a given pointer type can also be converted to the analogous reference type. For example, any object whose address can be converted to type char * can also be converted to type char &. No constructors or class conversion functions are called to make a conversion to a reference type.

Do not confuse reference declarations with use of the address-of operator. When & identifier is preceded by a type, such as int or char, then identifier is declared as a reference to the type. When & identifier is not preceded by a type, the usage is that of the address-of operator.

Example
  Copy Code
// expre_ReferenceOperator.cpp
// compile with: /EHsc
// Demonstrate reference operator
#include <iostream>
using namespace std;
struct Person {
    char   *Name;
    short Age;
};

int main() {
   Person Friend;             // Declare the object.
   Person& rFriend = Friend;  // Declare the reference.

   Friend.Name = "Bill";
   rFriend.Age = 40;

   cout << rFriend.Name << " is " << Friend.Age << endl;
}
 
3.static 意味着"不管类的对象被创建多少次,都只有一个实例"
4.const 要理解声明const成员函数的语法,首先注意前面的带const的函数声明, 它表示函数的返回值是const,但这不会产生想要的结果。相反,必须把修饰符const放在函数参数表的后面。
//ConstMember.cpp
class X{
 int i;
public:
 X(int ii);
 int f() const;
}
X::X(int ii):i(ii){}
int X::f() const {return i;}
5.# 和 ##
#实现字符串的定义,它允许取一个标识符并把它转化为字符数组,然而字符串拼接在当两个相邻的字符串没有分隔符时发生,在这种情况下字符串组合在一起。
#define DEBUG(x) cout << #x "=" << x <<endl;
##是实现标识符粘贴的。
#define FIELD(a) char* a##_string; int a##_size

  评论这张
 
阅读(175)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017