面試

大拿科技 智啟物聯(lián)

2016-9-6

1.下面程序的輸入是:16 12

參見鏈接

struct A
{
    int a;
    short b;
    int c;
    char d;
} ;
struct B
{
    int a;
    short b;
    char d;
    int c;
};
void sizeofstruct()
{
    cout<<sizeof(A)<<endl<<sizeof(B)<<endl;
} 

2.下面程序的輸出: 000000f7,fffffff7

void point()
{
    unsigned int a = 0xFFFFFFF7;
    unsigned char i = (unsigned char) a;
    char *b=(char*)&a;
    printf("%08x,%08x\n",i,*b);
}

3.模板函數(shù)與仿函數(shù)

#include<iostream>
#include<string>

using namespace std;
template<typename T,typename _PrintFunc>
void PrintAll(const T *values,int size ,_PrintFunc _print)
{
    for(int i=0;i<size;i++) _print(values[i]);
    cout << endl;
}
/*待輸出的數(shù)組*/
int iV[5] = {1,2,3,4,5};
string sV[3]={"aaa","bbb","ccc"};
  • 定義一個(gè)模塊打印函數(shù),調(diào)用PrintAll并輸出上面的數(shù)組iV,sV
template<typename T>
void Print(const T value)
{
    cout<< value;
}
//調(diào)用的時(shí)候使用
PrintAll(iV,5,Print<int>);
PrintAll(sV,3,Print<string>); 
  • 使用仿函數(shù)實(shí)現(xiàn)上面的打印函數(shù),并調(diào)用PrintAll。

仿函數(shù)!!!

/*
** 仿函數(shù): 
** 《C++標(biāo)準(zhǔn)程序庫(kù)》一書中對(duì)仿函數(shù)的解釋:
**  任何東西,只要其行為像函數(shù),就可以稱之為仿函數(shù)。
*/
class MyPrint    
{    
public:  
    template<typename T> 
    void operator()(T value) const    
    {    
        cout<< value;
    }    
};  
//調(diào)用
PrintAll(iV,5,myPrint);
PrintAll(sV,3,myPrint);

4.關(guān)于子類與父類,new 一個(gè)子類用父類接受。

{
    C *c = new D();
    c->fun();
    c->fun2();
    delete c;   
}

類的定義如下:

class C
{
public:
    C()
    {
        cout<<"constructor sup C"<<endl;
    }
    ~C()
    {
        cout<<"Destory sup C"<<endl;
    }
    void fun()
    {
        cout<< "sup C fun()" << endl;   
    } 
    virtual  void fun2() 
    {
        cout << "sup C fun2()" << endl;
    }
};
class D:public C
{
public:
    D()
    {
        cout<<"constructor sub D"<<endl;
    }
    ~D()
    {
        cout<<"Destory sub D"<<endl;
    }
    
    void fun()
    {
        cout<< "sub D fun()" << endl;   
    } 
    virtual  void fun2() 
    {
        cout << "sub D fun2()" << endl;
    }
};

輸出:

constructor sup C
constructor sub D
sup C fun()
sub D fun2()
Destory sup C
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,738評(píng)論 18 399
  • 1.OC里用到集合類是什么? 基本類型為:NSArray,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,393評(píng)論 0 3
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,199評(píng)論 30 471
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,650評(píng)論 1 114
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,606評(píng)論 1 118