《C++ Primer中文版(第5版)》有奖试读活动开始啦!

CSDN 2013-10-22 01:39:00
加精
提起C++图书,很多人第一时间便会想到《C++ Primer》——这本引领几代中国程序员从初入门楣到登堂入室的权威经典。之所以被视为神作,是因为她曾被翻译成数十种语言,在全球范围创下一千三百万册的销售神话,更因为她拥有C++ 大师Stanley B. Lippman、C++ 标准委员会负责人Josée Lajoie以及C++ 先驱Barbara E. Moo这样堪称梦幻的豪华作者团队。

时隔8年以后,随着新标准引发的C++复兴狂潮,唯一支持C++11的第五版《C++ Primer》正式登陆中国,想拥有这本书么?快来参加我们的有奖试读活动赢取礼品吧!

活动时间:2013-10-22—2013-10-27

活动规则:

阅读图书试读章节来参加活动,以回帖形式写试读心得或根据提供的话题参与讨论
图书试读章节下载地址:http://download.csdn.net/download/broadview2006/6435123

本期讨论话题:

1. Lippman中国行,你最想听到哪些内容?
2.对C++大师Lippman你有哪些问题要问?(我们会挑选部分问题请大师解答哦)
3.试读本书章节后发表读后感或关于本书的精简书评。

评奖规则:

针对以上任意话题跟帖回复,我们会在讨论结束后,择优挑选5名网友,中奖者获赠Lippman大师签名作《C++ Primer中文版(第5版)》一册。

相信,对技术满怀热情的你,对未来充满期待的你,一定不会错过任何一个机会!

值此《C++ Primer中文版(第五版)》面世之际,博文视点出版社特为广大读者带来更大惊喜——邀请本书第一作者Stanley B. Lippman来京,与广大中国读者欢聚畅聊,与大师近距离对话,我们热情期待您的参与~
Stanley B. Lippman中国行活动场次(暂):
10月24日 长沙•中国计算机大会专场演讲
10月27日 北京•中关村图书大厦读者见面会
10月27日 北京•对话《C++ Primer》大师专场活动
10月28日 北京•北京航空航天大学专场演讲
10月29日 北京•北京大学专场演讲

更多Stanley B. Lippman中国行详情见:http://www.broadview.com.cn/open%20party/20131016/index.html
...全文
8329 150 打赏 收藏 转发到动态 举报
写回复
用AI写文章
150 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwhkmxy 2013-12-30
  • 打赏
  • 举报
回复
先下载看看。
飞X破杀 2013-12-01
  • 打赏
  • 举报
回复
太好了,!初学者的福音
Honyun100 2013-11-29
  • 打赏
  • 举报
回复
markmark!!多多支持啊,有去C++方向的打算
逸萌 2013-11-26
  • 打赏
  • 举报
回复
yjfvictor 2013-11-21
  • 打赏
  • 举报
回复
引用 144 楼 pengjialaosan 的回复:
[quote=引用 142 楼 yjf_victor 的回复:] [quote=引用 114 楼 pengjialaosan 的回复:] 3.3 标准库类型 vector 第92页:
vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素
不知道是不是我理解的有问题,我手中也没有最新的编译器验证,但我总觉得这里应该用圆括号才对。
这是新语法,不要想当然地用旧语法来生搬硬套。 C++11标准明确规定了“初始化列表”(initializer list),就是大括号中一堆用逗号隔开的数据。 编译通过: 运行结果: [/quote] 谢谢,我已经知道可以这样用花括号了。但我不是想当然地用旧语法生搬硬套,而是根据这本书里的描述产生这种疑问。在书的91页,说到 创建指定数量的元素 下面的两行代码用的就是圆括号:

vector<int> ivec(10, -1);  //10个int 类型的元素,每个都被初始化为-1
vector<string> svec(10, "hi!"); //10 个string类型的元素,每个都被初始化为 hi!
您说“C++11标准明确规定了“初始化列表”(initializer list),就是大括号中一堆用逗号隔开的数据。”但书里后来在92页说明这两个语句其实还是 值初始化(value-initialized)

vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素
[/quote] 嗯嗯,我说的有问题。这确实不是“初始化列表”,这应该是“值初始化”。
我的太阳123 2013-11-21
  • 打赏
  • 举报
回复
C++11还是很不错的 听大师讲解多态性
彭家老三 2013-11-20
  • 打赏
  • 举报
回复
引用 142 楼 yjf_victor 的回复:
[quote=引用 114 楼 pengjialaosan 的回复:] 3.3 标准库类型 vector 第92页:
vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素
不知道是不是我理解的有问题,我手中也没有最新的编译器验证,但我总觉得这里应该用圆括号才对。
这是新语法,不要想当然地用旧语法来生搬硬套。 C++11标准明确规定了“初始化列表”(initializer list),就是大括号中一堆用逗号隔开的数据。 编译通过: 运行结果: [/quote] 谢谢,我已经知道可以这样用花括号了。但我不是想当然地用旧语法生搬硬套,而是根据这本书里的描述产生这种疑问。在书的91页,说到 创建指定数量的元素 下面的两行代码用的就是圆括号:

vector<int> ivec(10, -1);  //10个int 类型的元素,每个都被初始化为-1
vector<string> svec(10, "hi!"); //10 个string类型的元素,每个都被初始化为 hi!
您说“C++11标准明确规定了“初始化列表”(initializer list),就是大括号中一堆用逗号隔开的数据。”但书里后来在92页说明这两个语句其实还是 值初始化(value-initialized)

vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素
cmlxd1234 2013-11-19
  • 打赏
  • 举报
回复
一直对这本书很好奇,下来看看,不是说是经典吗
yjfvictor 2013-11-16
  • 打赏
  • 举报
回复
引用 114 楼 pengjialaosan 的回复:
3.3 标准库类型 vector 第92页:
vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素

不知道是不是我理解的有问题,我手中也没有最新的编译器验证,但我总觉得这里应该用圆括号才对。



这是新语法,不要想当然地用旧语法来生搬硬套。
C++11标准明确规定了“初始化列表”(initializer list),就是大括号中一堆用逗号隔开的数据。

编译通过:


运行结果:
yjfvictor 2013-11-16
  • 打赏
  • 举报
回复
struct NoCopy {
    NoCopy() = default;    // use the synthesized default constructor
    NoCopy(const NoCopy&) = delete;            // no copy
    NoCopy &operator=(const NoCopy&) = delete; // no assignment
    ~NoCopy() = default;   // use the synthesized destructor
    // other members
};
yjfvictor 2013-11-16
  • 打赏
  • 举报
回复
引用 78 楼 hankcs 的回复:
3.试读本书章节后发表读后感或关于本书的精简书评。 不如我来为没时间细看的朋友列举一下《C++ Primer中文版(第5版)》中关于C++11的新知识吧。 1、新定义了数据类型 long long 2、列表初始化——用花括号来初始化变量
vector<string> articles = {"a", "an", "the"};
3、右值引用

int ival = 1024;
int &refVal = ival;	// refVal 指向 ival (是 ival 的另名字)
int &refVal2;	//报错::引用必须被初始化
4、空指针关键字 得到空指针最直接的办法就是用字面值 nullptr 来初始化指针,这也是 C++11 新标准刚 刚引入的一种方法。
int *p1 = nullptr;// 等价于 int *p1 = 0;
5、constexpr 类型 C++11 新标准规定,允许将变量声明为 constexpr 类型以便由编译器来验证变量的值是否是一个常量表达式。声明为 constexpr 的变量一定是一个常量,而且必须用常量表达式初始化:
constexpr int	mf = 20;	//	20 是常量表达式
constexpr int	limit = mf +	1;	//	mf + 1 是常量表达式
constexpr int	sz = size () ;	//	只有当 size 是constexpr函数才是一条正确的声明语句
6、auto 类型说明符 auto 让编译器通过初始值来推算变量的类型。
//由vail和val2相加的结果可以推断出item的类型
auto item = vail + va12; // item初始化为vail和val2相加的结果
7、decltype类型指示符 作用是选择并返回操作数的数据类型。
decltype (f()) sum = x; // sum的类型就是函数f的返回类型
8、类内初始值 创建对象时,类内初始值将用于初始化数据成员。没有初始值的成员将被默认初始化 9、范围for (range for)语句

for (auto c : str)	//对于str中的每个字符
cout<<c<<endl;	// 输出当前字符,后面紧跟一个换行符
10、两个新函数cbegin 和 cend
auto it3 =v.cbegin(); // it3 的类型是 vector<int>::const_iterator
11、标准库函数 begin 和 end
int ia[] ={0,1,2,3,4,5,6,7,8,9}; // ia 是一个含有 10 个数的数组
int *beg =begin(ia);// 指向 ia 首元素的指针
int *last =end(ia);//指向 arr 尾元素的下一位置的指针
12、商一律向 0 取整(即直接切除小数部分)
21 % -5;	/* 结果是 1 */
13、允许使用作用域运算符来获取类成员的大小 14、 vector<vector<int>>不用写成vector<vector<int> > 也对 水平很菜,尽量引用了原文。试读才四章就感觉C++11带来了很多全新的特性,并且这些特性将会是C++编码更加轻松愉快。人生苦短,我要用C++11!
继续补上: 第六章 函数的返回值类型后置(Trailing Return Type)
auto func(int i) -> int(*)[10];
第七章 委任型构造函数(Delegating Constructors)
class Sales_data {
public:
	// nondelegating constructor initializes members from corresponding arguments
	Sales_data(std::string s, unsigned cnt, double price):
            bookNo(s), units_sold(cnt), revenue(cnt*price) {
	}
	// remaining constructors all delegate to another constructor
	Sales_data(): Sales_data("", 0, 0) {}
	Sales_data(std::string s): Sales_data(s, 0,0) {}
	Sales_data(std::istream &is): Sales_data()
                                        { read(is, *this); }
	// other members as before
};
第十章 lambda表达式(Lambda Expressions) 格式:
[捕获列表] (形参列表) -> 返回值类型  { 函数体 }
样例一:
auto f = [] { return 42; };
cout << f() << endl;  // prints 42
样例二:
// sort words by size, but maintain alphabetical order for words of the same size
stable_sort(words.begin(), words.end(),
            [](const string &a, const string &b)
              { return a.size() < b.size();});
样例三:
void fcn1()
{
    size_t v1 = 42;  // local variable
    // copies v1 into the callable object named f
    auto f = [v1] { return v1; };
    v1 = 0;
    auto j = f(); // j is 42; f stored a copy of v1 when we created it
}
捕获列表的格式: [] 什么变量也不传入 [&] 全部变量传引用进去 [=] 全部变量传值进去 [&,identifier_list] 除了identifier_list传值,其余的传入引用 [=,&reference_list] 除了reference_list传入引用,其余的传值 第十三章 默认构造函数(=default)、禁用某些构造函数(=delete)。
class Sales_data {
public:
    // copy control; use defaults
    Sales_data() = default;
    Sales_data(const Sales_data&) = default;
    Sales_data& operator=(const Sales_data &);
    ~Sales_data() = default;
    // other members as before
};
Sales_data& Sales_data::operator=(const Sales_data&) = default;
无趣 2013-11-15
  • 打赏
  • 举报
回复
书早买了,没时间看呢。。。
abandon_asdn 2013-11-14
  • 打赏
  • 举报
回复
sorry,还以为有进入下载页呢,原来直接在联通、电信、vip处下载。
abandon_asdn 2013-11-14
  • 打赏
  • 举报
回复
来晚了,活动结束了。 谁有下载好的试读样章,能否发我一份?谢谢1528505515@qq.com
Jst_do_IT 2013-11-08
  • 打赏
  • 举报
回复
一名流浪的猿 2013-11-08
  • 打赏
  • 举报
回复
昨天刚入手一本!还没开始看。
小塔-皂荚花 2013-11-07
  • 打赏
  • 举报
回复
LJJgood 2013-11-06
  • 打赏
  • 举报
回复
同学说这版本的C++讲的巨好,非常好
竹叶门冬青 2013-11-05
  • 打赏
  • 举报
回复
xuanmu678 2013-11-05
  • 打赏
  • 举报
回复
想下载软件可是不懂怎样才可以拿到积分
加载更多回复(129)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧