`
JonsenElizee
  • 浏览: 46834 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

C++ 友元

阅读更多

测试C++友元关键字

/************************************************************************/

/* FriendKey.h */

/************************************************************************/

#pragma once

#include <iostream>

class Planet

{

private:

int ID;

//注意此处的构造器是私有的,

//导致Earth类不能实例化其实例,

//Sphere可以,因为它是友元类。

Planet()

{

ID = 13;

}

friend class Sphere;

public:

void showID(void)

{

std::cout<<"id is "<<ID;

}

};

class Earth : public Planet

{

};

class Sphere : public Planet

{

};

/************************************************************************/

/* FriendKey.cpp : Defines the entry point for the console application. */

/************************************************************************/

//

#include "stdafx.h"

#include "FriendKey.h"

int _tmain (int argc, _TCHAR* argv[])

{

Sphere xxx; //此处工作得很好

xxx.showID();

getchar();

return 0;

}

/************************************************************************/

/* FriendKey.cpp : Defines the entry point for the console application. */

/************************************************************************/

//

#include "stdafx.h"

#include "FriendKey.h"

int _tmain (int argc, _TCHAR* argv[])

{

Earth xxx; //此处工作得很不好,运行会报错,编译能通过。

xxx.showID();

getchar();

return 0;

}

// if there is a class Nothing extended from Earth class, it can be initailized too.

// class Nothing : public Earth

// {

// }

// if class Earth is extended from Planet in this way:

// class Earth : virtual public Planet

// {

// }

// then the class Nothing would not be initialized.

分享到:
评论

相关推荐

    C++友元函数及友元类全总结

    ### C++友元函数及友元类全总结 #### 一、引言 在C++编程语言中,封装性是一个非常重要的概念。封装使得对象的数据成员(尤其是私有成员)和成员函数得以隐藏,从而提高了代码的安全性和可维护性。然而,在某些...

    实例讲解C++友元,利用实例讲解C++友元的知识

    在这个实例讲解中,我们将深入理解C++友元的概念,并通过实际例子来阐述其应用。 一、友元的概念 友元不是类的成员,但它可以访问类的私有和保护成员。C++中的友元声明有两种形式:友元函数和友元类。友元函数是一...

    C++友元习题.pdf

    "C++友元习题.pdf" 本摘要信息涵盖了C++语言中友元函数的使用方法和应用场景,通过三个实例程序,详细说明了友元函数的声明、定义和使用。 知识点1:友元函数的声明和定义 在C++中,友元函数是指在类外部定义的...

    C++友元成员函数使用实例

    本篇将深入探讨“C++友元成员函数”的使用实例。 首先,让我们理解友元函数的基本概念。友元函数不是类的成员,但它被声明为某个类的友元,因此它可以访问该类的所有私有和受保护成员。通常,友元函数定义在类的...

    c++友元函数与友元类的深入解析

    友元函数和友元类的需要:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又...

    C++友元接口讲解让你更加的了解友元

    ### C++友元接口详解 在C++编程语言中,友元(Friend)是一个非常重要的概念,它允许非成员函数或类访问另一个类的私有(private)和受保护(protected)成员。本文将深入探讨C++中的友元机制,并通过具体的代码...

    关于c++友元.ppt

    主要讲解c++种的友元类友元函数 可以更好地学习其中的内容 友元在类中担任着十分关键的角色 所以更应该认真学习

    Exe7_0友元_C++友元函数编程(两种有友元方式)_cloudzfv_

    本示例"Exe7_0友元_C++友元函数编程(两种有友元方式)_cloudzfv_"旨在帮助初学者理解并掌握C++中的友元函数的两种主要用法。现在,我们将详细讨论这两种友元函数的实现方式。 1. **友元函数** 友元函数不是类的...

    C++友元类调用实例详解

    C++友元类调用实例详解 在 C++ 编程语言中,友元类(Friend Class)是一种特殊的类关系,允许一个类访问另一个类的私有成员和保护成员。本文将详细解释友元类的调用实例,包括友元类的定义、继承关系、成员访问控制...

    c++友元函数.doc

    c++友元函数.doc

    面向对象c++友元使用

    ### 面向对象C++友元使用 #### 背景与问题描述 本案例涉及到了面向对象编程中的一个重要概念——友元。通过具体的代码示例,我们了解到如何利用友元来访问类中的私有成员。具体而言,案例描述了一个涉及到三个不同...

    C++友元函数的分析和理解

    本篇文章将深入探讨C++友元函数的概念、用途、优缺点以及如何正确使用它们。 首先,友元函数不是类的成员,但可以通过声明为友元来访问类的私有和受保护成员。声明友元的语法是在类的定义中使用`friend`关键字: `...

    C++友元函数和友元类的学习心得[归纳].pdf

    C++友元函数和友元类的学习心得[归纳].pdf

    C++友元习题 (2).docx

    以下是根据题目内容解析的几个关于C++友元的知识点: 01. 友元函数 友元函数不是类的成员函数,但它可以访问类的私有和受保护成员。在例程中,`add()` 函数被声明为 `Sample` 类的友元,因此它可以访问 `Sample` 类...

    c++ 友元函数入门教程

    C++中的友元函数是一种特殊的功能,它允许非成员函数访问类的私有(private)或保护(protected)成员,打破了封装性原则。这在某些情况下可以提高代码的效率和灵活性,但同时也增加了代码的复杂性和潜在的风险。...

    C++友元应用实例friend

    在C++编程语言中,"友元"(friend)是一个重要的特性,用于打破封装的界限,使得类或函数可以访问通常被隐藏的私有(private)或受保护(protected)成员。这一特性在某些特定场景下非常有用,例如实现特定的数据...

    C++友元习题 .pdf

    1. 友元函数:在C++中,友元函数是一种非成员函数,它可以访问类的私有和保护成员。在题目01中,`add`函数被声明为`Sample`类的友元,允许它直接访问类`Sample`的私有成员`n`,并计算两个`Sample`对象的`n`值之和。...

    C++友元习题 .docx

    在C++编程语言中,友元机制是一种打破封装的方式,允许一个类访问另一个类的私有或保护成员。这是为了实现特定的复杂设计或者优化数据访问。以下是对给定题目中涉及的友元相关知识点的详细说明: 1. **友元函数**:...

    C++友元与继承

    我们知道,基类的private成员在派生类中不能被访问。那么,友元函数能否继承。(举例说明)

    C++友元习题.docx

    在C++编程语言中,友元机制是一种打破封装的方式,允许一个类访问另一个类的私有或保护成员。这是为了实现特定的复杂设计需求,比如在类之间建立非继承关系的紧密协作。以下是对给定文件中四个示例程序的详细解析: ...

Global site tag (gtag.js) - Google Analytics