C++基础
hujia0815
这个作者很懒,什么都没留下…
展开
-
#include是怎么样工作的?
大多数园友可能对“#include”比较熟悉,因为我们写C/C++程序的时候都会写的字符串之一,但是它是具体怎么工作的?或者它的原理是什么呢?可能不太熟悉,也有可能没有去关心过。我们只关心程序能否正确运行,或者程序怎么实现等等一些问题。 这里笔者就为介绍下我们熟悉又不太熟悉的“#include”,首先我们了解下C/C++头文件。 头文件为相关声明提供了一个集中存在的位置。头文件一般原创 2012-12-21 19:25:31 · 244 阅读 · 0 评论 -
成员函数与非成员函数的抉择
1.尽量用类的非成员函数以及友元函数替换类的成员函数 例如一个类来模拟人People 1 class People{ 2 public: 3 ... 4 void Getup( ); 5 void Washing( ); 6 void eating( ); 7原创 2012-12-21 19:25:38 · 239 阅读 · 0 评论 -
C++你最好不要做的
1、最好不要使用引用返回值 有同学在传递的参数的时候使用引用方式传递,避免了临时对象的创建,提高了效率,那么在返回值的时候能不能使用引用呢? 看如下代码 class Rational{ public: Raional( int numerator = 0, int denominator =1); ...原创 2012-12-21 19:25:43 · 367 阅读 · 0 评论 -
C++文件依存关系
如果现在你做的C++项目(课题)包含的文件没有超过1000个,你可以选择略过此文,不过建议继续浏览。 如果你觉得重新编译文件的时间很短或者时间长一点无所谓,反正需要重新编译,那么你也可以选择略过此文,不过也建议浏览。 如果你想学习或者关心这块内容,那么此文必定会给你带来收获。 首先我不给出依存关系的定义,我给出一个例子。 1 class Peopel{ 2 public: 3原创 2012-12-21 19:25:46 · 465 阅读 · 1 评论 -
KMP算法
KMP算法是字符串处理算法的一种经典算法。字符串中的一些算法在C++中需要编程者自己实现,在C#中的话String类的功能及其强大,编程者自己调用该类一些功能完成字符串处理。那么可能就导致错过这些字符串基本的经典算法。而在字符串处理这些算法中,KMP算法可谓是经典算法。 那么首先看下面一个一般求子串在主串中的位置的算法。 模式匹配 有两个字符串S1(长度为n)和S2(长度为m)(n>原创 2012-12-21 19:25:23 · 61 阅读 · 0 评论 -
尽量不要使用#define,而是用const、enum、inline替换。
为什么这么说呢?或许很多程序员已经习惯在文件开始使用大量的#define语句。例如:这里程序文件开头有如下#define语句 #define N 10 #define PI 3.14 #define MAX 10原创 2012-12-21 19:25:34 · 211 阅读 · 0 评论 -
C++你可能不知道地方
c++中编译器替我们完成了许多事情,我们可能不知道,但也可能习以为常。下面详细介绍 一、初始化与初始赋值 首先说说类的初始化与初始赋值之前的区别,这也许里面可能有我们不知道的事情。 其实类初始化与初始赋值还是有区别的。 1 class People{ 2 public: 3 People(std::stri原创 2012-12-21 19:25:41 · 250 阅读 · 0 评论 -
C++继承
C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual。然后是各个成员函数选项可以是virtual或non-virtual或pure virtual。本文仅仅作出一些关键点的验证。 public继承,例如下: 1 class base 2 {...} 3 class derived:publ原创 2012-12-21 19:25:48 · 260 阅读 · 0 评论 -
std::invalid_argument应用
首先说明invalid_argument是一个类(class invalid_argument;),它的继承关系如下 exception-------->logic_error--------->invalid_argument invalid_argument原型是 1 class invalid_argument:public logic_error { 2 public: 3原创 2012-12-21 19:25:36 · 346 阅读 · 0 评论