随笔分类 -  C++

摘要:C++11新标准规定,可以为数据成员提供一个类内初始值。创建对象时,类内初始值将用于初始化数据成员。没有初始值的成员将默认初始化。对类内初始值的限制与之前介绍的类似:或者放在花括号里,或者放在等号右边,记住不能使用圆括号。 阅读全文
posted @ 2014-08-02 11:51 Jessica程序猿 阅读(1429) 评论(0) 推荐(1)
摘要:有时我们希望定义这样一种变量,它的值不能被改变。例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉得缓冲区大小不再合适时,很容易对其进行调整。另一方面,也应随时警惕防止程序一不小心改变了这个值。为了满足这一要求,可以用关键字const对变量的类型加以限定:const int buffsiz... 阅读全文
posted @ 2014-07-31 23:30 Jessica程序猿 阅读(492) 评论(0) 推荐(0)
摘要:引用引用为对象起了另外一个名字,引用类型引用另外一个类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:int ival=1024;int &refval=ival; //refval指向ival(是ival的另一个名字)int &refval2; //报错:引用必须初始化一... 阅读全文
posted @ 2014-07-31 17:05 Jessica程序猿 阅读(1077) 评论(0) 推荐(0)
摘要:初始值当对象在创建的时候获得了一个特定的值,我们说这个对象被初始化了。注意:初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。1 列表初始化C++语言定义了初始化的好几种不同的形式,这也是初始化问题复杂性的一个体现。例如:int unit... 阅读全文
posted @ 2014-07-31 15:06 Jessica程序猿 阅读(983) 评论(0) 推荐(0)
摘要:带符号和无符号类型除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的和无符号的两种。带符号类型可以表示正数、负数和0,无符号类型则仅能表示大于等于0的值。类型int、short、long和long long都是带符号的,通过在这些类型名前添加unsigned就可以得到无符号类型,例如unsig... 阅读全文
posted @ 2014-07-31 10:08 Jessica程序猿 阅读(406) 评论(0) 推荐(0)
摘要:点运算符(.):点运算符只能用于类类型的对象,其左侧运算对象必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。调用运算符(()):当用点运算符访问一个成员函数时,通常我们是想调用该函数,我们使用调用运算符来调用一个函数,调用运算符是一对圆括号,里面放置实... 阅读全文
posted @ 2014-07-31 09:10 Jessica程序猿 阅读(225) 评论(0) 推荐(0)
摘要:上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题。++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又是完全不同的(q前置运算符:先加1,再赋值;后置运算符:先赋值,再加1)。那么要怎么重载它们,才... 阅读全文
posted @ 2014-07-30 23:18 Jessica程序猿 阅读(321) 评论(0) 推荐(0)
摘要:在前一节中曾提到过,C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的。这一系列我将主要讲解C++中有关运算符重载方面的内容。在每一个系列讲解之前,都会有它的一些基础知识需要我们去理解。而运算符重载的基础就是运算符重载函数。所以今天主要讲的是运算符重... 阅读全文
posted @ 2014-07-30 23:15 Jessica程序猿 阅读(405) 评论(0) 推荐(0)
摘要:重载限制多数C++运算符都可以用下面的方式重载。重载的运算符不必是成员函数,但必须至少有一个操作数是用户自定义的类型。下面详细介绍C++对用户定义的运算符重载的限制。1 重载后的运算符必须至少有一个操作数是用户自定义的类型,这将防止用户为标准类型重载运算符。因此,不能将减法运算符(-)重载为doub... 阅读全文
posted @ 2014-07-30 23:07 Jessica程序猿 阅读(8889) 评论(0) 推荐(0)
摘要:C++的流插入运算符“>”是C++在类库中提供的,所有C++编译系统都在类库中提供输入流类istream和输出流类ostream。cin和cout分别是istream类和ostream类的对象。在类库提供的头文件中已经对“>”进行了重载,使之作为流插入运算符和流提取运算符,能用来输出和输入C++标准... 阅读全文
posted @ 2014-07-30 21:17 Jessica程序猿 阅读(29527) 评论(0) 推荐(3)
摘要:C++ 语言并未定义任何输入输出(IO)语句,取而代之,包含了一个全面的标准库(iostream)来提供IO机制(以及很多其他设施)。iostream库包含两个基础类型istream和ostream,分别表示输入流核输出流。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。术语“流”想要表达... 阅读全文
posted @ 2014-07-30 16:56 Jessica程序猿 阅读(296) 评论(0) 推荐(0)
摘要:Java的设计者曾说过,设计这门语言的灵感主要来自于C++。世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史。所以在Java语言学习过程中,将其与C++语言对比是一件有意义的事情。通过这些对比,我们能够了解到Java语言相对于C++语言有哪些改进,能带给我们哪些进... 阅读全文
posted @ 2014-07-30 16:04 Jessica程序猿 阅读(2626) 评论(0) 推荐(0)
摘要:声明template参数时, 前缀关键字class和typename可以互换;使用关键字typename标识嵌套从属类型名称, 但不需在基类列表和成员初始化列表内使用.从属名称(dependent names):模板(template)内出现的名称, 相依于某个模板(template)参数, 如T ... 阅读全文
posted @ 2014-06-03 17:26 Jessica程序猿 阅读(3113) 评论(0) 推荐(0)
摘要:1. //在C++中typename一般用来声明模板的模板参数(template parameter): template class X; //T是一个模板参数 2. /*但是还有一个关键的用法。首先是两个概念: 1). qualified name 例如:std::c... 阅读全文
posted @ 2014-06-03 11:03 Jessica程序猿 阅读(13092) 评论(1) 推荐(3)
摘要:最近学习了太多与MacOS与Iphone相关的东西,因为不会有太多人有兴趣,学习的平台又是MacOS,不太喜欢MacOS下的输入法,所以写下来的东西少了很多。 等我学习的东西慢慢的与平台无关的时候,可能可以写下来的东西又会慢慢多起来吧。。。。。不过我想早一批订阅我博客的人应该已经不会再看了,因为已经... 阅读全文
posted @ 2014-06-03 09:51 Jessica程序猿 阅读(329) 评论(0) 推荐(0)
摘要:为什么赋值运算符要返回引用??因为赋值操作会改变左值,而 + 之类的运算符不会改变操作数,所以说赋值运算符重载要返回引用以用于类似 (a=b)=c 这样的再次对a=b进行写操作的表达式。+ 返回一个临时对象是合情合理的 ,你若返回引用大多数情况下也不会出错或导致某个操作数被意外修改,但这就使(a+b... 阅读全文
posted @ 2014-06-01 17:40 Jessica程序猿 阅读(3894) 评论(0) 推荐(1)
摘要:指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化。 ★ 相同点: 1. 都是地址的概念; 指针指向一块内存... 阅读全文
posted @ 2014-05-31 10:38 Jessica程序猿 阅读(487) 评论(0) 推荐(0)
摘要:嵌套类局部类《c++ primer 3th》C++嵌套类1、嵌套类的名字只在外围类可见。2、类的私有成员只有类的成员和友元可以访问,因此外围类不可以访问嵌套类的私有成员。嵌套类可以访问外围类的成员(通过对象、指针或者引用)。3、一个好的嵌套类设计:嵌套类应该设成私有。嵌套类的成员和方法可以设为pub... 阅读全文
posted @ 2014-05-29 22:03 Jessica程序猿 阅读(369) 评论(0) 推荐(0)
摘要:Screen.h#ifndef SCREEN_H#define SCREEN_H#include class Screen {public: typedef std::string::size_type pos; // Action is a type that can point to... 阅读全文
posted @ 2014-05-29 16:16 Jessica程序猿 阅读(306) 评论(0) 推荐(0)
摘要:C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。 刚遇到这种语法时也许会让你止步不前。但你会发现,使用恰当的类型定义之后,复杂的语法是可以... 阅读全文
posted @ 2014-05-29 16:11 Jessica程序猿 阅读(656) 评论(0) 推荐(0)