Everything start here.
Windows8 Tech
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 55 文章 - 15 trackbacks - 0
<
2012年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Windows 8(8)
随笔档案
2013年2月 (1)
2013年1月 (8)
2012年10月 (10)
2012年9月 (1)
2012年6月 (6)
2012年5月 (16)
2012年4月 (5)
2012年3月 (4)
2012年2月 (4)
搜索
最新评论
1. re: Window 8 学习笔记(三)-- 如何创建一个可变尺寸的GridView
楼主能提供完整的源码么,想系统学习下,谢谢啦,
--堕落1990
2. re: Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法
@Dino-Tech
@Dino-Tech
OK,期待你加我的QQ.
--英明神武可爱
3. re: Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法
评论内容较长,点击标题查看
--Dino-Tech
4. re: Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法
评论内容较长,点击标题查看
--英明神武可爱
5. re: Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法
你可以加我的qq吗,我按你的方法继承了gridview,但是编译不过。
--英明神武可爱
阅读排行榜
1. Dino Windows 8 学习笔记(十四)--BackgroundTask 15问(3458)
2. Dino Windows 8 学习笔记(十)-- 一个异常引发的文章之Resource Dictionary(3194)
3. Dino Windows 8 学习笔记(十三)-- Toast(2823)
4. Window 8 学习笔记(二)--如何创建自定义类型的MessageDialog(2488)
5. Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法(2120)
评论排行榜
1. Windows 8 学习笔记(四)--创建Variable Sized GridView之PrepareContainerForItemOverride方法(7)
2. Thinking in C++--第三章 平时不太注意的编程细节(3)
3. Thinking in c++ -- 并发(1)定义任务,使用线程(1)
4. Windows 8 基本概念(1)
5. Windows 8 中的异步处理(1)
Thinking in C++ --继承
1. 继承中的函数隐藏
任何时候重新定义了基类中的一个重载函数,那么在新类中的所有其他版本将被自动隐藏。修改返回值和参数同样会隐藏基类其他版本的函数,如果该函数是虚函数,不能在新类中修改返回值。
2. 自动类型转换方法(该转换只发生在函数调用期间)
1) 利用转型构造函数
2) 利用运算符转换
如果不想自动转换,可将转型构造函数利用explicit关键字设为显式调用
class
One
{
public
:
One()
{}
}
;
class
Two
{
public
:
explicit
Two(
const
&
One)
{}
}
;
void
f(Two)
{}
int
main()
{
One one;
f(one);
//
error
f(Two(one));
//
right
return
0
;
}
It's supposed to help with your complexion.
运算符转换之前没用到过,该方法的中心思想是,在该类中添加一个 operator Type()的函数,该函数没有返回值,要从该类转型到该Type类型的时候,编译器会自动调用该成员函数,转换成Type类型
class
Four
{
public
:
operator
Three()
const
{
return
Three(x);
}
}
;
g(Three)
{}
int
main()
{
Four four;
g(four);
//
invoke four.Three(), there no return value
return
0
;
}
3. 拷贝构造函数和赋值操作符
子类如果没有写这两个,编译器将会自动生成,生成的代码中调用父类的拷贝构造函数和赋值操作符,所以如果我们自己写的话,最好也要调用父类的拷贝构造函数和赋值操作符。
因为构造函数和operator=和拷贝构造函数只负责初始化自己层次的构造,所以要完成初始化,必须先要初始化父类,所以他们不能被继承。(其实没理解这句话,如果被继承了的话,那子类就可以负责完成父类的初始化了???)
一旦我们自己决定手动添加拷贝构造函数和operator=,编译器会假定我们已经知道所作的一切,并且不再自动调用基类版本,如果想调用,必须我们自己添加,即初始化列表。
4. 多态的进化(为什么使用多态和怎么用)
....
1
posted on 2012-04-23 17:33
Dino-Tech
阅读(205)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理