面試

大拿科技 智啟物聯

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.模板函數與仿函數

#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;
}
/*待輸出的數組*/
int iV[5] = {1,2,3,4,5};
string sV[3]={"aaa","bbb","ccc"};
  • 定義一個模塊打印函數,調用PrintAll并輸出上面的數組iV,sV
template<typename T>
void Print(const T value)
{
    cout<< value;
}
//調用的時候使用
PrintAll(iV,5,Print<int>);
PrintAll(sV,3,Print<string>); 
  • 使用仿函數實現上面的打印函數,并調用PrintAll。

仿函數!!!

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

4.關于子類與父類,new 一個子類用父類接受。

{
    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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

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