青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 55  文章 - 15  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

     摘要: MVVM的目的是為了把表現(xiàn)與邏輯分開來,相互之間不要有太大的影響,讓程序員能夠?qū)P牡刈瞿骋粔K。但有些時候必須要有聯(lián)系,外部傳入數(shù)據(jù),控件接收數(shù)據(jù),并傳入后臺處理,后臺處理后的數(shù)據(jù)又要顯示在控件上,這就需要數(shù)據(jù)綁定。數(shù)據(jù)綁定的方法已經(jīng)說了幾遍了,有3種方法,一種是源和目標都是依賴屬性的時候,直接在Xaml文件中binding就行了,方法也比較簡單;第二種和第三種方法針對的都是源不是依賴屬性的時候,但目標必須是依賴屬性,這時第二種方法要使用INotifyPropertyChanged接口,當屬性改變的時候,一個Event被激活,并且提醒Binding對象將新值寫入目標數(shù)據(jù);第三種方法是設(shè)置DataContext,這種方法最簡單,只需要在Xaml文件中設(shè)置一下就好。  閱讀全文
posted @ 2012-06-26 17:24 Dino-Tech 閱讀(1418) | 評論 (0)編輯 收藏
     摘要: windows 8 基本概念  閱讀全文
posted @ 2012-06-12 18:43 Dino-Tech 閱讀(637) | 評論 (1)編輯 收藏


#include <iostream>
using namespace std;
template<typename t>
t maximum(t a, t b){
    cout << "template" << endl;
    return a>b?a:b;
}

template<>
const char* maximum(const char* a, const char* b){
    return strlen(a) > strlen(b)? a:b;
}

//template<>
//char* maximum(char* a, char* b){
//    return strlen(a) > strlen(b)? a:b;
//}//如果沒有const 的話,依舊會調(diào)用最上面的模板,因為編譯器不能準確匹配,所以必須為const才行。

int main(){
    cout << maximum("pfdsfasdakis", "kadf") << endl;
}



#include <iostream>
using namespace std;

template<typename T>
class TestClass{
public:
    void F(T pT){
        cout << " T version " << endl;
        cout << pT << endl;
    }
};


template<>
class TestClass<int>{
public:
    void F(int pT){
        cout << "int version " << endl;
        cout << pT << endl;
    }
    void F(char pT){
        cout << "int version " << endl;
        cout << pT << endl;
    }如果這里修改成接受char型的參數(shù),并且在main函數(shù)中調(diào)用obj2.F('a'),同樣的,會調(diào)到該函數(shù),所以說,編譯器是在看到“TestClass<int> obj2;“這句的時候就知道該調(diào)用哪個了。
    void g(){}
};//特化的類在編譯器中已經(jīng)跟原來的類名字不同了,所以是兩個東西,但是編譯器要找一個最符合的名字。TestClass_int 可以在里面修改東西

int main(){
    TestClass<char> obj1;
    TestClass<int> obj2;
    obj1.F('A');
    obj2.F(10);
    obj2.g();
    return 0;
}

posted @ 2012-06-04 19:57 Dino-Tech 閱讀(338) | 評論 (0)編輯 收藏
一個函數(shù)接受一個基類的指針或者引用,傳入一個子類的指針或者引用(向上類型轉(zhuǎn)換),希望調(diào)用子類的相應(yīng)函數(shù)。目的:以后添加新的子類,都可以傳入該函數(shù)。
早綁定:編譯器通過上下文,判斷該函數(shù)屬于哪個對象,并在編譯期將函數(shù)名與函數(shù)地址綁定。
晚綁定:在運行的時候,判斷該函數(shù)屬于哪個對象,并在運行時將函數(shù)名與函數(shù)地址綁定。必須有類型信息裝在對象自身中。
聲明時添加virtual關(guān)鍵字,定義時不需要。

使用指針和引用的目的是讓編譯器不能完全知道該對象的確切類型,不然就會調(diào)用早綁定。晚綁定是根據(jù)VTABLE來實現(xiàn),并且基類和子類的每個虛函數(shù)的排列順序都是相同的,所以調(diào)用函數(shù)的時候已經(jīng)不是通過名字來調(diào)用,而是通過指令,通過函數(shù)地址的偏移量來調(diào)用了。

抽象基類的意義,為子類提供一個公共的接口。

通過基類指針調(diào)用基類中不存在的函數(shù)是危險的,因為,也許你恰好知道子類對象中有這個函數(shù),那你的調(diào)用時成功的,但是萬一木有呢?
class Base(){
public:
 virtual void f(){}
};

class Derived1: public Base
{
public:
 virtual void f(){}
 virtual void g(){}
};
class Derived2: public Base
{
public:
 virtual void f(){}
 virtual void m(){}
};

void func(Base* b){
b->g();
}
int main{
Base*Test1 = new Derived1;
Base*Test2 = new Derived2;
func(Test1);// right;
func(Test2);// crash
}

這里涉及到運行時類型識別(RTTI)和向下類型轉(zhuǎn)換問題。向下類型轉(zhuǎn)換不安全,因為沒有類型信息,基類指針不知道基類的內(nèi)存塊之后的東西是屬于哪個子類的,如果轉(zhuǎn)錯,將會比較麻煩。

在編程時注意防止對象的切片,如果按傳值方式而不是傳址和傳引用方式
將子類對象傳入一個接受基類對象的函數(shù)中去的話,那么,只拷貝子類對象中基類的部分數(shù)據(jù),又因為編譯器能明確地知道該對象的類型,所以不會產(chǎn)生晚綁定,而是早綁定。我們應(yīng)該避免在這種情況下傳值。

如果重新定義了基類中的虛函數(shù),則基類中其他重載版本將被隱藏。(同非虛函數(shù)一樣)
如果重載了基類中的虛函數(shù),則基類中其他版本將被隱藏(同非虛函數(shù)一樣)
不能在子類中修改基類中虛函數(shù)的返回值(非虛函數(shù)可以修改返回值,并且隱藏其他重載版本)
但是,也有特例
class PetFood{
public:
  virtual string foodType() const = 0;
};

class Pet{
public:
  virtual string type() const = 0;
  virtual PetFood* eat() = 0;
};

class Bird : public Pet{
public:
  string type()const {return "bird";}
  class BirdFood  :  public PetFood{
    public:
      string foodType()const{
         return "Bird food";
       }
     };
   PetFood* eat(){ return &bf;}
private:
   BirdFood bf;
};

class Cat: public Pet{
public:
  string type()const {return "cat";}
  class CatFood  :  public PetFood{
    public:
      string foodType()const{
         return "Cat food";
       }
     };
   CatFood* eat(){ return &cf;}// Here, you can return a CatFood*, because it's a PetType* type. Why don't return a type as PetFood? See segment in main()
private:
   CatFood cf;
};

int main(){
 Bird b;
 Cat c;
 Cat::CatFood* cf = c.eat();
 Bird::BirdFood* bf = b.eat();//downcast, warning!!!Cast PetFood* to BirdFood. So you better return a special pointer, not a base type.
}
}
返回確切的類型要更通用些。

vptr vtable由誰來初始化?構(gòu)造函數(shù)?是編譯器插入一小段代碼在構(gòu)造函數(shù)中初始化。
派生類只訪問它自己的成員,而不訪問基類的成員。只有基類的構(gòu)造函數(shù)才能正確地初始化自己的成員。所以要在構(gòu)造函數(shù)中:子要可能,我們應(yīng)該在這個構(gòu)造函數(shù)初始化列表中從初始化所有的成員對象(通過組合置于類中),因為你必須保證所有的東西都被初始化了,才能使用該對象。

在構(gòu)造函數(shù)中調(diào)用虛函數(shù),調(diào)用的只是本地版本。
原因:該對象還未初始完畢,但是vptr已經(jīng)初始化,而且指向自己的vtable,所以調(diào)用的只是本地的函數(shù)。


1
posted @ 2012-06-04 16:27 Dino-Tech 閱讀(241) | 評論 (0)編輯 收藏
     摘要: 代碼重用的手段,利用已有的類。
組合:類似于使用工具,現(xiàn)有的類作為子對象。砍樹:斧頭作為子對象
繼承:類似于學(xué)習(xí)本領(lǐng),現(xiàn)有的類作為師父。砍樹:拜師練習(xí)砍樹的本領(lǐng)。  閱讀全文
posted @ 2012-06-04 14:37 Dino-Tech 閱讀(208) | 評論 (0)編輯 收藏
     摘要: 重載運算符,是STL的基礎(chǔ)。  閱讀全文
posted @ 2012-06-01 16:48 Dino-Tech 閱讀(277) | 評論 (0)編輯 收藏
     摘要: 引用必須和一個存儲單元聯(lián)系起來;傳值的時候會使用拷貝構(gòu)造函數(shù),為了防止位拷貝,最好自己寫拷貝構(gòu)造函數(shù)。為了防止傳值,使拷貝構(gòu)造函數(shù)為私有的,這里有個例子ostream os,不能這么寫,必須傳遞引用 ostream& os。  閱讀全文
posted @ 2012-05-31 17:01 Dino-Tech 閱讀(199) | 評論 (0)編輯 收藏
     摘要: static 的各種應(yīng)用。  閱讀全文
posted @ 2012-05-31 14:30 Dino-Tech 閱讀(149) | 評論 (0)編輯 收藏
     摘要: 編譯器處理內(nèi)聯(lián)函數(shù)的策略。  閱讀全文
posted @ 2012-05-30 16:45 Dino-Tech 閱讀(256) | 評論 (0)編輯 收藏
     摘要: 內(nèi)部鏈接,成員函數(shù),常量表達式,傳參和返回值,類里面的const  閱讀全文
posted @ 2012-05-30 16:12 Dino-Tech 閱讀(176) | 評論 (0)編輯 收藏
僅列出標題
共6頁: 1 2 3 4 5 6 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区午夜精品| 91久久精品日日躁夜夜躁国产| 农夫在线精品视频免费观看| 亚洲欧美日韩国产中文| 亚洲一区亚洲| 亚洲影院免费观看| 亚洲欧美日韩国产中文| 香蕉亚洲视频| 久久美女艺术照精彩视频福利播放| 久久av老司机精品网站导航| 久久成人一区二区| 欧美激情一区二区三区全黄| 国产精品久久激情| 国产模特精品视频久久久久| 激情综合久久| 亚洲精品在线观看视频| 亚洲欧美日韩另类| 牛牛国产精品| 亚洲美女性视频| 亚洲黄色一区二区三区| 韩国精品久久久999| 亚洲高清影视| 中文无字幕一区二区三区| 亚洲一区二区三区成人在线视频精品 | 狂野欧美激情性xxxx| 亚洲国产精品一区二区久| 99伊人成综合| 久久视频国产精品免费视频在线 | 亚洲免费不卡| 久久精品国亚洲| 欧美体内she精视频| 国产亚洲一区二区三区在线播放| 亚洲精品综合| 亚洲欧美日韩一区二区三区在线 | 久久精品国产99国产精品澳门| 久热综合在线亚洲精品| 日韩亚洲精品电影| 欧美一区二区黄| 欧美日韩国产成人| 免费成人小视频| 六月婷婷一区| 日韩午夜av电影| 久久久一区二区| 国产欧美亚洲日本| 亚洲女爱视频在线| 91久久精品美女| 欧美成人首页| 1769国产精品| 麻豆精品视频在线观看视频| 亚洲女与黑人做爰| 欧美日韩综合网| a4yy欧美一区二区三区| 欧美激情一区二区三区不卡| 久久九九精品99国产精品| 国产精品美女久久久浪潮软件| 一区二区欧美视频| 亚洲韩日在线| 欧美激情综合| 一本色道久久加勒比精品| 亚洲高清视频在线| 老司机午夜精品| 亚洲黄网站在线观看| 欧美超级免费视 在线| 久久久久九九九九| 在线看日韩av| 亚洲大胆人体视频| 欧美国产第二页| 免费观看日韩av| 亚洲免费福利视频| 亚洲激情社区| 欧美日韩一区国产| 亚洲欧美一区二区原创| 亚洲在线播放| 国产婷婷成人久久av免费高清 | 国产日本欧美一区二区三区在线 | 久久久视频精品| 久久久久久久久蜜桃| 亚洲成色www久久网站| 欧美激情一二三区| 中文在线资源观看网站视频免费不卡 | 亚洲电影中文字幕| 国产综合视频| 亚洲视频专区在线| 国产亚洲精品成人av久久ww| 久久久最新网址| 久久久精品一区| 亚洲国产精品久久91精品| 最新国产拍偷乱拍精品| 国产精品mv在线观看| 久久蜜桃资源一区二区老牛 | 亚洲人久久久| 欧美视频一二三区| 亚洲毛片视频| 在线视频免费在线观看一区二区| 欧美精品在线极品| 亚洲美女性视频| 久久综合精品国产一区二区三区| 黄色另类av| 国产精品日日摸夜夜摸av| 久久久久综合网| 一区二区三区国产在线| 亚洲资源av| 在线成人欧美| 国产精品一区在线观看| 麻豆精品精品国产自在97香蕉| 日韩一区二区电影网| 狂野欧美激情性xxxx| 欧美一区二区视频在线观看| 日韩亚洲欧美中文三级| 韩国三级电影久久久久久| 国产精品一二三| 欧美精品xxxxbbbb| 免费在线日韩av| 欧美成人免费观看| 亚洲欧美在线一区| 日韩天堂在线视频| 亚洲激情校园春色| 亚洲精品久久| 一本一本久久a久久精品综合麻豆| 久久亚洲精选| 亚洲电影毛片| 亚洲最新中文字幕| 亚洲视频免费看| 欧美专区亚洲专区| 久久久久国产精品一区| 另类激情亚洲| 欧美视频在线观看免费网址| 欧美美女bbbb| 国产欧美日韩在线观看| 亚洲图片在区色| 在线一区二区日韩| 亚洲一区二区在线免费观看| 亚洲私人影院在线观看| 久久综合九色欧美综合狠狠| 亚洲一区亚洲二区| 久久精品亚洲一区二区三区浴池| 久久久久久午夜| 欧美系列电影免费观看| 好看的亚洲午夜视频在线| 亚洲精品美女| 久久视频国产精品免费视频在线| 亚洲国产cao| 欧美在线不卡视频| 欧美男人的天堂| 在线观看91精品国产麻豆| 在线亚洲欧美视频| 亚洲国产二区| 亚洲一区二区三区视频播放| 亚洲免费视频网站| 欧美日韩亚洲高清| 一区在线视频| 亚洲欧美中文日韩在线| 亚洲国产日日夜夜| 久久精品在这里| 国产精品午夜电影| 亚洲伊人久久综合| 亚洲伦理在线| 欧美日本视频在线| 日韩一级欧洲| 日韩午夜激情电影| 欧美大片一区二区三区| 亚洲国产成人精品久久| 久久亚洲一区二区| 欧美永久精品| 国产精品国产自产拍高清av| 国产精品porn| 国产精品区二区三区日本| 欧美日韩中文在线| 欧美日韩性视频在线| 国产精品www色诱视频| 国产亚洲精品综合一区91| 国产精品视频免费观看www| 99综合电影在线视频| 欧美影院久久久| 巨胸喷奶水www久久久免费动漫| 国产精品日韩一区二区| 国内精品久久久久影院 日本资源| 99视频在线观看一区三区| 99re热精品| 久久亚洲美女| 亚洲一本视频| 亚洲精品影视| 亚洲一区二区不卡免费| av成人手机在线| 国产亚洲欧美在线| 久久精品视频免费| 久久精品一本| 亚洲综合国产精品| 在线精品观看| 中日韩视频在线观看| 亚洲二区视频| 亚洲第一视频网站| 黄色欧美成人| 久久久久国产一区二区| 亚洲高清视频一区二区| 亚洲在线一区二区| 亚洲视频一区二区| 久久久免费av| 久久久福利视频| 国产乱人伦精品一区二区|