c++基础知识学习:
http://blog.csdn.net/alvanchen/article/details/5744457
c++内存管理:
http://blog.csdn.net/zhanghefu/article/details/5003407
http://blog.csdn.net/lejuo/article/details/2269571
c++基础知识:
基本内置类型:bool,char,wchar_t,short,int,long,float,double,long double
指针:指针用于指向对象。与迭代器一样,指针提供对其所指对象的简介访问。指针用于访问单个对象,而迭代器只能用于访问容器内的元素。
每个指针都有一个与之相关联的数据类型,该数据类型决定了指针所指向的对象类型。例如,一个int型指针只能指向一个int对象。
指针三种取值:0值,表明它不指向任何对象;保存一个特定对象的地址;指向某个对象后面的另一个对象。指针使用前一定要初始化,如果必须分开定义指针和所指向的对象,则将指针初始化为0。
指针操作:
string s1("some value");
string *sp1 = &s1; //s2指向了s1的内存块
*sp1 = "new value"; //修改了sp1指向的内存中的值,s1中的数据也改变了
string *sp2 = "hello";
sp1 = sp2; //sp1重新指向了"hello"的内存
&符号是取地址操作符,用于一个对象上时,返回的是该对象的存储地址;
*符号是解引用操作符,对指针进行解引用操作,可以获得该指针所指对象的值。
c中的指针和数组容易产生不可预料的错误,现代C++程序采用vector类型和迭代器取代一般的数组、采用string类型取代c风格字符串。
指针和引用比较:
1、将一个指针赋值给另一个指针时,使其指向了另一个不同的对象,对原来指向的对象没有影响。
int ival = 1024;ival2 = 2048;
int *pi1 = &ival,*pi2 = &ival2;
pi1 = pi2; //ip1指向了ip2指向的对象即ival2,ival对象不受影响
2、将一个引用赋值给另一个引用时,两个引用还是分别指向原来的关联对象,对象的值会改变。
int ival = 1024;ival2 = 2048;
int &ri = ival,&ri2 = ival2; //相当于为引用起了一个别名
ri = ri2; //ri仍然指向ival对象,ri2指向ival2对象,只是ival对象的内容改变了,与ival2相等了。
注意,下面的写法与上面的不一样:
int a = 10;
int b = a; // b不是a的别名,而是指向另一块内存,把a的内容拷贝过去。
b = 20;//此时a的值仍为10;
virtual关键字参考文章:
http://developer.51cto.com/art/201104/256256.htm
C++ Virtual关键字
C++通过虚函数实现多态."无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变"的处理方式被称为多态性。而虚函数是通过Virtual关键字来限定的。下面让我们一起来看。
Virtual是C++ OO(面向对象机制)机制中很重要的一个关键字。虚函数就是因为成员函数加了关键字virtual,可见它的重要性。
只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现。(关于虚拟机制是如何实现的,参见Inside the C++ Object Model ,Addison Wesley 1996)
//---------------------------------------------------------
class Base
{
public:Base(){}
public:
virtual void print(){cout<<"Base";}
};
class Derived:public Base
{
public:Derived(){}
public:
void print(){cout<<"Derived";}
};
int main()
{
Base *point=new Derived();
point->print();
}
//---------------------------------------------------------
Output:
Derived
分享到:
相关推荐
### C++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...
以下是一些C++基础知识的详细介绍: 1. **变量与数据类型**:在C++中,变量是存储数据的容器。每种变量都有特定的数据类型,如整型(int)、浮点型(float或double)、字符型(char)和布尔型(bool)。声明变量时需指定其...
C\c++基础知识,面试常见问题 C\c++基础知识,面试常见问题
C++基础知识介绍,清楚简单明了,很容易进行记忆与学习
在学习C++基础知识时,你需要掌握以下几个关键点: 1. **基础语法**:C++的基础语法与C语言相似,包括变量声明、数据类型(如int、char、float等)、运算符(如算术运算符、比较运算符、逻辑运算符等)、流程控制...
"C++基础知识总结入门级"这个主题涵盖了初学者需要掌握的关键概念,让我们一一展开讨论。 首先,C++的IO系统是程序与用户交互的基础。`C++的IO.txt`可能包含关于iostream库的内容,如cin和cout用于标准输入输出,...
C++基础知识.chm文件提供了详细的C++教程,包括各个主题的索引,对于学习者来说是非常有价值的参考资料。 理解并掌握这些C++基础知识是成为熟练C++程序员的关键步骤。通过深入学习和实践,你可以逐步掌握这个强大...
C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在1979年设计并开发,...这份"编程语言C++基础知识课件"将引导你逐步掌握这个强大语言的关键概念,无论你是初学者还是有一定经验的开发者,都将从中受益匪浅。
《C++基础知识讲义v1》是一份专为初学者设计的C++教程,涵盖了C++编程语言的基础概念和重要特性。这份讲义通过一系列的PPT文件,深入浅出地讲解了C++的核心知识,旨在帮助学习者快速掌握这门强大的编程语言。 1. **...
C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 1. 创建项目...
这份"C++基础知识讲义v2"是一份专为初学者和初级C++讲师设计的学习资料,涵盖了C++的基础概念和关键特性。 1. **编程入门**(c++基礎知識1編程入門.pps):这部分通常会介绍C++的历史、基本语法,如变量声明、数据...
涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论、 智能指针、C++11、 Git教程 Linux命令 Unix操作系统(进程、线程、内存管理、信号)计算机网络、 数据结构(排序、查找)、数据库、、...
这个名为"C++基础知识.rar"的压缩包文件似乎是一个针对初学者的C++入门教程,旨在帮助学习者掌握C++的基础概念和编程技巧。 在C++的基础知识中,首先会介绍C++的历史和其与其他编程语言的关系,然后逐步深入到语言...
这个名为"C++基础知识测试&答案.rar"的压缩包文件包含了两份文档,分别是"C++基础知识测试答案.doc"和"C++基础知识测试.doc",它们旨在帮助学习者检验和巩固C++的基础知识。 在"C++基础知识测试.doc"中,你可能会...
C++基础知识 C++基础知识是C++入门者和面试C++工程师岗位前的必备知识点总结。它涵盖了语法语义、STL、排序算法等面试常问的知识点。 一、面向对象的程序设计思想 面向对象的程序设计思想是把数据结构和对数据...
本电子书“C++基础知识”旨在为初学者提供一个全面且实用的C++学习资源,帮助他们从零开始掌握这门语言。 C++起源于C语言,由Bjarne Stroustrup在1983年为了增加面向对象的特性而设计。它不仅继承了C语言的高效和...
总的来说,C++基础知识涵盖了编程的基本元素和高级特性。深入理解和熟练掌握这些知识,对于成为一名优秀的C++开发者至关重要。通过不断实践和学习,你可以利用C++的强大功能构建复杂且高效的软件系统。