C++基础知识
文章平均质量分 80
wz7654321
这个作者很懒,什么都没留下…
展开
-
C++基础:继承与派生(构造 析构函数 显式访问)
1.派生类如何构造:对于简单的派生类,即只有一个基类,且直接派生(多继承将在后续几节中做详细讲解),来讲,如果基类的构造函数没有参数,或者没有显式定义构造函数,那么派生类可以不向基类传递参数,甚至可以不定义构造函数。但是一旦基类含有带参数的构造函数时,派生类必须定义构造函数,并把参数传递给基类构造函数。其一般格式: 派生类名(参数总表)::基类名(参数子表) { 派生类新原创 2012-12-23 02:21:22 · 747 阅读 · 0 评论 -
C++基础:继承与派生(声明 继承方式 访问规则)
继承是面向对象程序设计中的重要特性,是软件复用的一种形式。其实继承和派生就是同一种概念的不同说法罢了,通常我们说子类继承父类,父类派生出子类。先讲一下C++中派生与继承的基本概念,它是之后学习派生类的构造与析构,以及多重继承等的基础。 1.派生类的声明 声明一个派生类的一般格式: class 派生类名:[继承方式] 基类名 { 派生类新增的数据成员和成员函数原创 2012-12-23 01:46:44 · 693 阅读 · 0 评论 -
c++ string类 总结
标准C++中的string类标准C++中提供的string类得功能是非常强大的,一般都能满足我们开发项目时使用。要想使用标准C++中string类,必须要包含:#include // 注意是,不是using std::string;using std::wstring;或using namespace std; string类的构造函数:stri原创 2012-12-23 01:09:50 · 488 阅读 · 0 评论 -
C++基础:类与对象(对象调用成员函数 this指针)
1.一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。this指针的使用:一种情况就是原创 2012-12-23 00:52:42 · 9561 阅读 · 2 评论 -
C++基础:类与对象(创建 成员 访问)
C中的结构体存在缺点:1.函数中的任意赋值语句都可以访问结构体中的成员,但在现实生活中并不是什么数据都可以被随意访问的,因此C语言中的结构体的数据是不安全的;2.结构体中的数据和对该数据的操作是分离的,并不是一个被封装起来的整体,因此使程序难以重用,影响了软件生产效率;于是C++中引入了类的概念。C++中规定如果没有对类的成员加私有private,保护protected,或公有publ原创 2012-12-22 17:41:13 · 622 阅读 · 0 评论 -
C++基础:类与对象(构造 析构 赋值 拷贝构造)
C++中类的构造函数与析构函数,对象的赋值与复制,拷贝构造函数等。和上一节一样,还是用Kid类来说明 建立对象并初始化:Kid kid(10,"rookie_j","男");另外一种使用new运算符动态建立对象:Kid *ptr=new Kid(10,"rookie_j","男");通过指针变量ptr来访问:ptr->showKid();当我们用new建立对象时,当不再使用它时,要用d转载 2012-12-22 18:48:07 · 566 阅读 · 0 评论 -
C++ inline 内联函数
人们经常会讨论的2种观点:一.inline 应该在函数声明之前(在定义之前是否有inline对函数是否内联不影响)http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/563879.htmlhttp://www.qqread.com/cpp/k352943300.htmlhttp://www.sf.org.cn/Article/ba原创 2012-12-21 13:58:19 · 329 阅读 · 0 评论 -
typedef和define的区别与用法
typedef关键字和#define有一种共同的作用,为一种类型创建自定义的名字,如typedef int myint;#define myint int是一样的,但是他们之间仍然有很大的区别。typedef语句是在编译过程中被解析的,而#define是在编译之前的预处理过程中被解析的。#define所进行的只是对自定义别名的简单替换,而typedef则要灵活得多。总的来说,typ原创 2012-12-21 10:59:17 · 1795 阅读 · 0 评论 -
sizeof和strlen的区别总结
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须转载 2013-01-04 16:13:01 · 322 阅读 · 0 评论 -
C++操作符重载手册
一、重载规则I.可以重载的操作符+ - * / % ^ & | ~ ! = > > >= = * , -> [] () operator new operator new[] operator delete operator delete []II.不能重载的操作符:: . .* ? : sizeof typeid new delete static_cast dynamic_转载 2012-12-20 22:12:43 · 874 阅读 · 1 评论 -
C++操作符总结
箭头操作符点操作符用于获取类类型对象的成员:Sales_item item1;item1.same_isbn(item2);若是有一个指向item1对象的指针:Sales_item *sp=&item1;则必须要先解引用,才能使用点操作符:(*sp).same_isbn(item2);并且括号是不能省略的,因为解引用的优先级要大于点操作。由于编程很容易忘记括号,原创 2012-12-20 21:57:37 · 271 阅读 · 0 评论 -
C的可变参数
C的可变参数1 使用:一直以来习惯了使用printf函数,但是对于可变参数没有深入研究过,觉得可变参数是一个神奇的技术^0^。。。工作闲下来的时候,想研究研究看可变参数的使用和原理。目前C提供的可变参数的申明为void function(const char *format, ...);这样就可以在function中使用可变参数C提供了几个宏用于使用可变参数va_l转载 2013-01-04 13:15:13 · 363 阅读 · 0 评论 -
C++类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample转载 2012-12-24 15:22:15 · 538 阅读 · 1 评论 -
C++基础:多态的剖析(重载、覆盖、隐藏)
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2012-12-23 22:19:54 · 314 阅读 · 0 评论 -
C++中static extern关键字及全局变量的辨析
全局变量,就是指那些定义在函数或类之外的变量,它可作为多个类或函数都需要共同使用的变量。(1)全局变量会被自动初始化,函数中的变量不会被自动初始化,类中定义的那些成员变量(内建)也不会自动初始化。那么这里有一个疑问,为什么要这样设置?并且为什么,进程内存区中,分为初始化了的全局变量和静态变量,和未初始化的全局和静态变量。(2)全局变量如果加上static关键字,事情将会变得很奇妙。我们原创 2012-12-21 23:16:52 · 2197 阅读 · 0 评论 -
C/C++中extern关键字详解
C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函转载 2012-12-21 23:02:08 · 332 阅读 · 0 评论 -
C++基础:多态 虚函数
面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。 从实现的角度来讲,多态可以分为两类:编译时的多态性和运行时的多态性。前者是通过静态联编来实现的,比如C++中通过函数的重载和运算符的重载。后者则是通过动态联编来实现的,在C++转载 2012-12-23 02:32:39 · 305 阅读 · 0 评论