【C++11之智能指针】教程文章相关的互联网学习教程文章

C/C++入门基础---指针(2)

5,数组指针的不同含义 int a[5][10]; printf(%d, %d, %d\n", a, a+1, &a+1); //1310392,1310432,1310592 a和&a都是数组a[5][10]的首地址。 a 是 int a[10]的类型,而 &a 则是 a[5][10]的类型。指针运算中的”1“代表的是指针类型的长度。所以 a + 1 和 &a + 1 中的1代表的长度分别为 a 的类型 a[10]即 sizeof(int)*10 和 &a 的类型 a[5][10]即 sizeof(int)* 10 * 5。所以 a首地址的输出为1310392,那么 a + 1 和 &a + 1的地址...

c++中基类与派生类中隐含的this指针的分析【代码】

先不要看结果,看一下你是否真正了解了this指针? 1 #include<iostream>2usingnamespace std;3 4class Parent{5public:6int x;7 Parent *p;8public:9 Parent(){} 10 Parent(int x){ 11this->x=x; 12 p=this; 13 } 14virtualvoid f(){ 15 cout<<"Parent::f()"<<endl; 16 } 17void g(){ 18 cout<<"Parent::g()"<<endl; 19 } 2021void h(){ 22 ...

C++之指针【代码】

1int main(int argc, char* argv[]) 2{ 3int c=5; 4int *a=&c; 5int *b; 6 b=&c; 7return0; 8 }指针声明指针类型* 指针实例名*a 就是指针a所指地址上的数据a 就是该指针所指的地址&a 表示该指针的地址&c 表示取变量c的地址原文:http://www.cnblogs.com/xxdfly/p/4370968.html

C++中的函数指针和函数对象总结【代码】

第一篇、函数指针函数指针,表示的是一个指针,它指向的是一个函数,它含义是指指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:1、用作调用函数2、做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表);一般函数的声明为:int func ( int x ); 而一个函数指针的声明方法为:int (*func) (int x); ...

C++ DWORD 转byte char 数组、指针【代码】

C++ DWORD 转byte char 数组、指针byte byteData[1024]; // byte数组,示例 DWORD dwData = dwReadBytes; // dword数据,示例 byteData[0] = (dwData & 0xFF000000) >> 24; // 最高位字节 byteData[1] = (dwData & 0x00FF0000) >> 16; // 第二高位字节 byteData[2] = (dwData & 0x0000FF00) >> 8; // 第三高位字节 byteData[3] = (dwData & 0x000000FF); // 第四字节 byte char 数组、指针 转 DWORDdwData = chr[0] | chr[1] << 8 ...

C++——类的成员函数指针以及mem_fun适配器【代码】

有这样一个类,我们以此类为基础: 1class Foo2{3public:4 5//void (Foo::*)(int) 6void foo(int a)7 {8 cout << a << endl;9 } 1011//void (*)(int)12staticvoid bar(int a) 13 { 14 cout << a << endl; 15 } 16 };我们尝试调用函数指针:void (*pFunc)(int) = &Foo::foo;得到编译错误:error: cannot convert ‘void (Foo::*)(int)’ to ‘void (*)(int)’ in initialization原因很简单,类成员函数,包...

C++(空指针访问成员函数)【代码】

空指针访问成员函数C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针;如果用到this指针,需要加以判断保证代码的健壮性示例:#include <iostream> using namespace std;//空指针访问成员函数 class Person{ public:void ShowClassName(){cout<<"我是Person类!"<<endl;} void ShowPerson(){if(this==NULL){return;}cout<<this->mAge<<endl;} public:int mAge; };void test01() {Person *p=NULL;p->ShowCla...

C++之指针【代码】

C++中指针是一个很让人头疼的东西,指针指向这儿指向那儿很容易把人搞晕了。指针实现了对象的间接访问,指针本身也是对象这点和引用不同,引用仅仅是对象的别名。指针可以在其生命周期内指向不同的对象(当然除了指针常量),另外指针无需在定义时赋值,指针也可以为空指针或者无效指针。常用的定义方法如下:int a=10;Int *b=&a;//运用取地址运算符 注意:引用不是对象,没有实际的地址,所以没有指向引用的指针! 指针的值类型:...

C++静态成员变量和静态成员函数指针【代码】

#include <iostream> usingnamespace std;class Point { public:Point(int x = 0, int y = 0) : x(x), y(y) {count++;} Point(const Point &p) : x(p.x), y(p.y) {count++;}~Point() { count--; }int getX() const { return x; }int getY() const { return y; }staticint count;private:int x, y; };int Point::count = 0;int main() {int *ptr = &Point::count;Point a(4, 5);cout << "Point A: " << a.getX() << ", " << a.g...

[C++]数组指针,数组引用,函数指针【代码】

数组指针是指一个指向数组的指针,例如有一个数组指针p指向一个数组a[],则 *p是取到这个数组,也就是说 *p=a,因此 **p =a[0],它的定义为:int a[10]; int (*c)[10]=&a;(*c)表示它是一个指针,若不加括号则变成 指针数组 ,[10]表示指向一个长度为10的数组,int 表示数组元素为int因为函数不能返回数组,所以可以设置返回一个数组指针,即auto fo2(int (&a)[10]) -> int (*)[10]{a[5]=10;return &a; }int (&a)[10] 是一个数组引用...

C/C++——跟我重写智能指针auto_ptr模版类

第一次使用auto_ptr的时候感觉很好用,但是对内部原理根本不懂,心里不知道这东西到底是个什么东东,总是感觉这东东比较陌生。今天有时间来简单实现一下该类模版auto_ptr,实现了该模版类的主要功能,可以让大家了解一下这个东东内部到底是个什么情况。栈对象和堆对象的区别:首先,看一下两种类对象的区别,一个是在栈上分配空间,另一个是在堆上分配空间。如果看到这里,你不清楚堆和栈的区别。那我也不解释了,自行Google..(如...

C++中的this指针和常量成员函数【图】

默认情况下,编译器为类的每个成员函数提供了一个隐式形参,该形参指向被调用的成员函数所在的对象。该隐式形参成为this。常量成员函数是一个不会修改调用它的对象的函数。1.this指针隐式对象形参的实际形参就是调用成员函数的对象的地址。因此在类的成员函数中也可以通过使用( *this )表达式来访问调用它的对象。此外,也可以通过同一个指针访问该对象的任何成员。  示例代码:  void Example::setValue(int x)  {    t...

c++匿名类—指针【代码】

1 摘自网上2代码实例#include <iostream> #include <list> #include <iterator> #include <cmath>usingnamespace std;class Term {public:Term(int c,int e):coef(c),exp(e){}float TermValue();int GetCoef(){return coef;}int GetExp(){return exp;}staticvoid SetX(float x_t){x=x_t;}int GetX(){return x;}private:int coef;int exp;staticfloat x; };float Term::x=1.0;float Term::TermValue() {return coef*pow(x,exp); }in...

Duanxx的C++学习: const指针具体解释

Const指的是一个编译时的常量。 keywordconst使得代码能够确定一个变量能否够被改动。使用了const后,能够防止对变量或者指针的改动;更重要的是,const的引用能够防止对所引用的对象的改动。 一般来说,在C语言中,对于一些常量的定义,我习惯性的使用define,而在C++中则最好改为使用const。 对于嵌入式程序而言,const的使用则是相当的微妙的,被const修饰后,其变量是存放在ROM中的,这一点非常重要。 关于Const的指针...

C++自学笔记_数组和指针_《C++ Primer》【代码】

1.数据定义中的类型可以是内置数据类型或者类类型,除引用数据类型之外,数组元素的类型可是是任何数据类型。没有所有元素都是引用数据类型的数组。2.数组的维数必须要用值大于等于1的表达式定义。此常量表达式只能包含整形字面值常量、枚举常量或者用常量表达式初始化的const对象,否则在编译阶段不知道数组的维数,对于一个非const对象,只有运行时才能获得它的值。  const unsigned buf_size=512; int staff_size=27; char inp...