最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++友元函數(shù)與拷貝構(gòu)造函數(shù)詳解

 更新時間:2014年07月15日 12:20:34   投稿:shichen2014  
這篇文章主要介紹了C++友元函數(shù)與拷貝構(gòu)造函數(shù),需要的朋友可以參考下

一、友元函數(shù)

1.友元函數(shù)概述:

(1)友元函數(shù)是定義在一個類外的普通函數(shù)。
友元函數(shù)和普通函數(shù)的定義一樣;在類內(nèi)必須將該普通函數(shù)聲明為友元。

(2)友元函數(shù)不是成員函數(shù)。
不能通過對象來調(diào)用,而是直接調(diào)用;友元函數(shù)可以訪問類的公有、受保護(hù)以及私有成員,但是必須通過對象、對象指針或者對象引用來訪問。

2.友元函數(shù)的聲明:

friend 返回值類型 函數(shù)名(參數(shù)表);
在類中只需要將這個聲明放置在公有部分即可。

class Point
{
double x, y;
public:
Point(){x = 0.0; y = 0.0;}
Point(double xx, double yy){x = xx; y = yy;}
friend double distance(Point, Point);//將distance函數(shù)聲明為友元函數(shù)
};
double distance(Point my1, Point my2)
{
return sqrt((my1.x-my2.x)*(my1.y-my2.y));
}

3.友元函數(shù)在定義時即普通函數(shù)的定義,前面不加friend,在類內(nèi)聲明時,必須加friend.
在友元函數(shù)生效的對象的作用范圍內(nèi)可以訪問私有、公有以及受保護(hù)成員。
main函數(shù)不能聲明為類的友元函數(shù),main函數(shù)只能做主調(diào)不能做被調(diào)。

二、拷貝構(gòu)造函數(shù):

1.拷貝構(gòu)造函數(shù)概述:

(1)拷貝構(gòu)造函數(shù)是一個構(gòu)造函數(shù),它屬于類的成員函數(shù)(普遍定義為public);和類名同名但是無返回值;創(chuàng)建對象時,若該對象的初始化值是另一個同類對象時(賦值不調(diào)用)調(diào)用。

(2)拷貝構(gòu)造函數(shù)的聲明

類名::類名(類名 &對象引用名); 或另一種聲明方式
類名::類名(const 類名 &對象引用名)
注意:拷貝構(gòu)造函數(shù)只有一個參數(shù),而且參數(shù)必須是一個對象的引用;每個類其實(shí)都要有一個拷貝構(gòu)造函數(shù),若沒有顯式的定義,那么系統(tǒng)會自動定義并且設(shè)置其屬性為公有。

2.示例程序:

class Point
{
int x, y;
public:
Point(){x = 0; y = 0;}
Point(int xx, int yy){x = xx; y = yy;}
Point(Point &pf){x = pf.x; y = pf.y;}//拷貝構(gòu)造函數(shù)的聲明可以省略第一個類名和::
};
Point(Point &pf)
{
*this = pf; //完成拷貝構(gòu)造
}
int main()
{
Point p1; //調(diào)用無參構(gòu)造
Point p2(3, 4); //調(diào)用構(gòu)造
Point p3(p2); //調(diào)用拷貝構(gòu)造
}

注意:如果沒有使用const修飾,那么出現(xiàn)pf.x=8這種語句是合法的,但是加了const之后是非法的。另外,引用完pf也會釋放。

相關(guān)文章

  • 基于SVN源碼服務(wù)器搭建(詳細(xì)教程分析)

    基于SVN源碼服務(wù)器搭建(詳細(xì)教程分析)

    本篇文章是對SVN源碼服務(wù)器搭建進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C語言實(shí)現(xiàn)簡單計(jì)算器

    C語言實(shí)現(xiàn)簡單計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C語言實(shí)現(xiàn)簡單的三子棋游戲源碼

    C語言實(shí)現(xiàn)簡單的三子棋游戲源碼

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單的三子棋游戲源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++二叉搜索樹BSTree使用詳解

    C++二叉搜索樹BSTree使用詳解

    二叉搜索樹(Binary Search Tree)又稱二叉排序樹,也稱作二叉查找樹它或者是一棵空樹,或者是具有以下性質(zhì)的二叉樹,若它的左子樹不為空,則左子樹上所有節(jié)點(diǎn)的值都小于根節(jié)點(diǎn)的值,若它的右子樹不為空,則右子樹上所有節(jié)點(diǎn)的值都大于根節(jié)點(diǎn)的值
    2023-03-03
  • php調(diào)用c++的方法

    php調(diào)用c++的方法

    這篇文章主要介紹了php調(diào)用c++的方法,需要的朋友可以參考下
    2014-01-01
  • C語言編寫Linux守護(hù)進(jìn)程實(shí)例

    C語言編寫Linux守護(hù)進(jìn)程實(shí)例

    這篇文章主要介紹了C語言編寫Linux守護(hù)進(jìn)程實(shí)例,本文講解了守護(hù)進(jìn)程及其特性、守護(hù)進(jìn)程的編程要點(diǎn)、守護(hù)進(jìn)程代碼實(shí)例等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • C語言運(yùn)用函數(shù)指針數(shù)組實(shí)現(xiàn)計(jì)算器功能

    C語言運(yùn)用函數(shù)指針數(shù)組實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了C語言運(yùn)用函數(shù)指針數(shù)組實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 項(xiàng)目之C++如何實(shí)現(xiàn)數(shù)據(jù)庫連接池

    項(xiàng)目之C++如何實(shí)現(xiàn)數(shù)據(jù)庫連接池

    這篇文章主要介紹了項(xiàng)目之C++如何實(shí)現(xiàn)數(shù)據(jù)庫連接池問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • c++常量詳解

    c++常量詳解

    常量是存放固定且不可變值的,一旦確定初始值則在程序其它地方不可改變, 所以const對象必須初始化。常量一般使用const關(guān)鍵字來修飾
    2017-06-06
  • C++快速排序算法簡明理解

    C++快速排序算法簡明理解

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實(shí)實(shí)用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個,還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影
    2022-05-05

最新評論

平乡县| 澄城县| 云梦县| 诸暨市| 松滋市| 台北县| 晋宁县| 沛县| 阿拉善右旗| 新平| 富裕县| 文成县| 永春县| 溧水县| 泰来县| 嘉荫县| 望都县| 库尔勒市| 阿坝| 江孜县| 大新县| 洛宁县| 高青县| 潜江市| 乌拉特前旗| 阿坝| 兴山县| 洞头县| 澜沧| 孝昌县| 静安区| 新津县| 南平市| 板桥市| 苏尼特左旗| 吉木乃县| 双牌县| 日照市| 榆社县| 普安县| 霍林郭勒市|