`

c++基础知识

    博客分类:
  • c++
 
阅读更多

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++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...

    c++ 基础知识手册

    以下是一些C++基础知识的详细介绍: 1. **变量与数据类型**:在C++中,变量是存储数据的容器。每种变量都有特定的数据类型,如整型(int)、浮点型(float或double)、字符型(char)和布尔型(bool)。声明变量时需指定其...

    c++基础知识(面试常见问题)

    C\c++基础知识,面试常见问题 C\c++基础知识,面试常见问题

    C++基础知识课件学习

    C++基础知识介绍,清楚简单明了,很容易进行记忆与学习

    C++ 基础知识 C++ 基础知识

    在学习C++基础知识时,你需要掌握以下几个关键点: 1. **基础语法**:C++的基础语法与C语言相似,包括变量声明、数据类型(如int、char、float等)、运算符(如算术运算符、比较运算符、逻辑运算符等)、流程控制...

    C++基础知识总结入门级

    "C++基础知识总结入门级"这个主题涵盖了初学者需要掌握的关键概念,让我们一一展开讨论。 首先,C++的IO系统是程序与用户交互的基础。`C++的IO.txt`可能包含关于iostream库的内容,如cin和cout用于标准输入输出,...

    c++基础知识chm文件

    C++基础知识.chm文件提供了详细的C++教程,包括各个主题的索引,对于学习者来说是非常有价值的参考资料。 理解并掌握这些C++基础知识是成为熟练C++程序员的关键步骤。通过深入学习和实践,你可以逐步掌握这个强大...

    编程语言C++基础知识课件

    C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在1979年设计并开发,...这份"编程语言C++基础知识课件"将引导你逐步掌握这个强大语言的关键概念,无论你是初学者还是有一定经验的开发者,都将从中受益匪浅。

    C++基础知识讲义v1

    《C++基础知识讲义v1》是一份专为初学者设计的C++教程,涵盖了C++编程语言的基础概念和重要特性。这份讲义通过一系列的PPT文件,深入浅出地讲解了C++的核心知识,旨在帮助学习者快速掌握这门强大的编程语言。 1. **...

    C++基础入门.pdf

    C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 1. 创建项目...

    C++基础知识讲义v2

    这份"C++基础知识讲义v2"是一份专为初学者和初级C++讲师设计的学习资料,涵盖了C++的基础概念和关键特性。 1. **编程入门**(c++基礎知識1編程入門.pps):这部分通常会介绍C++的历史、基本语法,如变量声明、数据...

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论等

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论、 智能指针、C++11、 Git教程 Linux命令 Unix操作系统(进程、线程、内存管理、信号)计算机网络、 数据结构(排序、查找)、数据库、、...

    C++基础知识.rar

    这个名为"C++基础知识.rar"的压缩包文件似乎是一个针对初学者的C++入门教程,旨在帮助学习者掌握C++的基础概念和编程技巧。 在C++的基础知识中,首先会介绍C++的历史和其与其他编程语言的关系,然后逐步深入到语言...

    C++基础知识测试&答案.rar

    这个名为"C++基础知识测试&答案.rar"的压缩包文件包含了两份文档,分别是"C++基础知识测试答案.doc"和"C++基础知识测试.doc",它们旨在帮助学习者检验和巩固C++的基础知识。 在"C++基础知识测试.doc"中,你可能会...

    C++基础知识.doc

    C++基础知识 C++基础知识是C++入门者和面试C++工程师岗位前的必备知识点总结。它涵盖了语法语义、STL、排序算法等面试常问的知识点。 一、面向对象的程序设计思想 面向对象的程序设计思想是把数据结构和对数据...

    c++基础知识电子书

    本电子书“C++基础知识”旨在为初学者提供一个全面且实用的C++学习资源,帮助他们从零开始掌握这门语言。 C++起源于C语言,由Bjarne Stroustrup在1983年为了增加面向对象的特性而设计。它不仅继承了C语言的高效和...

    C++基础知识

    总的来说,C++基础知识涵盖了编程的基本元素和高级特性。深入理解和熟练掌握这些知识,对于成为一名优秀的C++开发者至关重要。通过不断实践和学习,你可以利用C++的强大功能构建复杂且高效的软件系统。

Global site tag (gtag.js) - Google Analytics