摘要: String.h String.cpp 阅读全文
posted @ 2019-02-25 18:46 吹过田野的风 阅读(288) 评论(0) 推荐(0)
摘要: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 阅读全文
posted @ 2019-02-25 17:50 吹过田野的风 阅读(457) 评论(0) 推荐(1)
摘要: MyString.h MyString.cpp TestMyString.cpp 阅读全文
posted @ 2019-02-25 17:37 吹过田野的风 阅读(494) 评论(0) 推荐(0)
摘要: 4.6.1 运算符重载基本概念 运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 运算符重载(operator overloading)只是一种”语法上的方便”,也就是它只是另一种函数调用的方式。 在c++中,可以定义一个处理类的新运算符。这种定义很像一个普通的函 阅读全文
posted @ 2019-02-25 17:32 吹过田野的风 阅读(452) 评论(0) 推荐(0)
摘要: MyArray.h MyArray.cpp TestMyArray.cpp 阅读全文
posted @ 2019-02-25 16:36 吹过田野的风 阅读(548) 评论(0) 推荐(0)
摘要: 4.5 友元 类的主要特点之一是数据隐藏,即类的私有成员无法在类的外部(作用域之外)访问。但是,有时候需要在类的外部访问类的私有成员,怎么办? 解决方法是使用友元函数,友元函数是一种特权函数,c++允许这个特权函数访问私有成员。这一点从现实生活中也可以很好的理解: 比如你的家,有客厅,有你的卧室,那 阅读全文
posted @ 2019-02-25 16:12 吹过田野的风 阅读(255) 评论(0) 推荐(0)
摘要: 4.4.1 成员变量和函数的存储 在c语言中,“分开来声明的,也就是说,语言本身并没有支持“数据”和“函数”之间的关联性我们把这种程序方法称为“程序性的”,由一组“分布在各个以功能为导航的函数中”的算法驱动,它们处理的是共同的外部数据。 c++实现了“封装”,那么数据(成员属性)和操作(成员函数)是 阅读全文
posted @ 2019-02-25 11:56 吹过田野的风 阅读(308) 评论(0) 推荐(0)
摘要: 1. 饿汉模式使用饿汉模式实现单例是十分简单的,并且有效避免了线程安全问题,因为将该单例对象定义为static变量,程序启动即将其构造完成了。代码实现: 2.懒汉模式饿汉方式不论是否需要使用该对象都将其定义出来,可能浪费了内存,或者减慢了程序的启动速度。所以使用懒汉模式进行优化,懒汉模式即延迟构造对 阅读全文
posted @ 2019-02-25 11:52 吹过田野的风 阅读(5575) 评论(0) 推荐(1)
摘要: 静态成员 在类定义中,它的成员(包括成员变量和成员函数),这些成员可以用关键字static声明为静态的,称为静态成员。 不管这个类创建了多少个对象,静态成员只有一个拷贝,这个拷贝被所有属于这个类的对象共享。 4.3.7.1 静态成员变量 在一个类中,若将一个成员变量声明为static,这种成员称为静 阅读全文
posted @ 2019-02-25 11:41 吹过田野的风 阅读(317) 评论(0) 推荐(0)
摘要: 1. 初始化和清理 我们大家在购买一台电脑或者手机,或者其他的产品,这些产品都有一个初始设置,也就是这些产品对被创建的时候会有一个基础属性值。那么随着我们使用手机和电脑的时间越来越久,那么电脑和手机会慢慢被我们手动创建很多文件数据,某一天我们不用手机或电脑了,那么我们应该将电脑或手机中我们增加的数据 阅读全文
posted @ 2019-02-25 11:36 吹过田野的风 阅读(1162) 评论(0) 推荐(0)
摘要: 1 .设计立方体类 设计立方体类(Cube),求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),分别用全局函数和成员函数判断两个立方体是否相等。 2. 点和圆的关系 设计一个圆形类(AdvCircle),和一个点类(Point),计算点和圆的关系。 假 阅读全文
posted @ 2019-02-25 11:11 吹过田野的风 阅读(1565) 评论(0) 推荐(0)
摘要: C和C++中struct区别 n c语言struct只有变量 n c++语言struct 既有变量,也有函数 类的封装 我们编写程序的目的是为了解决现实中的问题,而这些问题的构成都是由各种事物组成,我们在计算机中要解决这种问题,首先要做就是要将这个问题的参与者:事和物抽象到计算机程序中,也就是用程序 阅读全文
posted @ 2019-02-25 11:08 吹过田野的风 阅读(458) 评论(0) 推荐(0)
摘要: 以下在Linux下测试: c函数: void MyFunc(){} ,被编译成函数: MyFunc c++函数: void MyFunc(){},被编译成函数: _Z6Myfuncv 通过这个测试,由于c++中需要支持函数重载,所以c和c++中对同一个函数经过编译后生成的函数名是不相同的,这就导致了 阅读全文
posted @ 2019-02-25 11:02 吹过田野的风 阅读(1353) 评论(0) 推荐(1)
摘要: 能使名字方便使用,是任何程序设计语言的一个重要特征! 我们现实生活中经常会碰到一些字在不同的场景下具有不同的意思,比如汉语中的多音字“重”。 当我们说: “他好重啊,我都背不动!”我们根据上下文意思,知道“重”在此时此地表示重量的意思。 如果我们说“你怎么写了那么多重复的代码? 维护性太差了!”这个 阅读全文
posted @ 2019-02-25 11:00 吹过田野的风 阅读(258) 评论(0) 推荐(0)
摘要: c++从c中继承的一个重要特征就是效率。假如c++的效率明显低于c的效率,那么就会有很大的一批程序员不去使用c++了。 在c中我们经常把一些短并且执行频繁的计算写成宏,而不是函数,这样做的理由是为了执行效率,宏可以避免函数调用的开销,这些都由预处理来完成。 但是在c++出现之后,使用预处理宏会出现两 阅读全文
posted @ 2019-02-25 10:54 吹过田野的风 阅读(741) 评论(0) 推荐(0)
摘要: 1. 引用基本用法 引用是c++对c的重要扩充。在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递(pass-by-reference),它也存在于其他一些编程语言中,并不是c++的发明。 变量名实质上是一段连续内存空间的别名,是一个标号(门牌号) 阅读全文
posted @ 2019-02-25 10:44 吹过田野的风 阅读(5422) 评论(0) 推荐(0)
摘要: c语言三目运算表达式返回值为数据值,为右值,不能赋值。 c++语言三目运算表达式返回值为变量本身(引用),为左值,可以赋值。 [左值和右值概念] 在c++中可以放在赋值操作符左边的是左值,可以放到赋值操作符右面的是右值。 有些变量即可以当左值,也可以当右值。 左值为Lvalue,L代表Locatio 阅读全文
posted @ 2019-02-25 10:25 吹过田野的风 阅读(323) 评论(0) 推荐(0)
摘要: 标准c++的bool类型有两种内建的常量true(转换为整数1)和false(转换为整数0)表示状态。这三个名字都是关键字。 bool类型只有两个值,true(1值),false(0值) bool类型占1个字节大小 给bool类型赋值时,非0值会自动转换为true(1),0值会自动转换false(0 阅读全文
posted @ 2019-02-25 10:21 吹过田野的风 阅读(419) 评论(0) 推荐(0)
摘要: c中定义结构体变量需要加上struct关键字,c++不需要。 c中的结构体只能定义成员变量,不能定义成员函数。c++即可以定义成员变量,也可以定义成员函数。 阅读全文
posted @ 2019-02-25 10:19 吹过田野的风 阅读(334) 评论(0) 推荐(0)
摘要: 在c++中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入关键字namespace 阅读全文
posted @ 2019-02-25 10:08 吹过田野的风 阅读(2087) 评论(0) 推荐(0)
摘要: n 封装 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 类将成员变量和成员函数封装在类的内部,根据需要设置访问权限,通过成员函数管理内部状态。 n 继承 继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征和能力。 继 阅读全文
posted @ 2019-02-25 09:49 吹过田野的风 阅读(141) 评论(0) 推荐(0)
摘要: 面向过程 面向过程是一种以过程为中心的编程思想。 通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向过程编程思想的核心:功能分解,自顶向下,逐层细化(程序=数据结构+算法)。 面向过程编程语言存在的主要缺点是不符合人的思维习惯 ,而是要用计算 阅读全文
posted @ 2019-02-25 09:48 吹过田野的风 阅读(343) 评论(0) 推荐(0)
摘要: 问题1:c++头文件为什么没有.h? 在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c++得用法改变了,c++头文件没有扩展名。但是有些c语言的头文件被转换为c++的头文件,这些文件被重新命名,丢掉了扩展名.h(使之成为c++风格头文件),并在文件名称前面加上前缀c 阅读全文
posted @ 2019-02-25 09:46 吹过田野的风 阅读(298) 评论(0) 推荐(0)