zoukankan      html  css  js  c++  java
  • 友元(friend)--初学篇

    友元:友好的元子,,,,呵呵呵



    一般一个类中有私有(private),公有(public),和保护(protected)三种类型成员,而只有public成员才可以在类外被随便访问,protected只能在继承子类中访问。一般要访问私有成员要通过公有
    函数提供的接口来访问,这符合面向对象的封装思想,但是有一种情况就例外,那就是-友元。
    什么事友元;友元就是可以访问它友好类中的私有成员,包括友元类和友元函数,友元类又包括一般类和嵌套类,友元函数又包括,一般普通函数,和类的成员函数。一般在声明友元类时要先声明类。在使用对象的时候必须先声明,在特殊情况下,正式时声明类之前要使用类名,所以在声明友元类之前先声明类,然后再去实现类,这种情况下, 类的提前声明的使用范围是有限的。只有在正式声明一个类以后才能用它去定义类对象。声明友元是在类体中加关键字(friend)声明.在友元类中或者友元函数中就可以访问类中的私有成员了。



    #include<iostream>
    using namespace std;
    class Date;
    class Time
    {
            public:
                    Time(int h,int m,int s):hour(h),minute(m),second(s){
                            
                    }
            private:
                    int hour;
                    int minute;
                    int second;
            public:
                    void display(Date &);
            
    };
    class Date
    {
            public:
                    Date(int,int ,int);
                    friend void Time::display(Date &);
            private:
                    int mouth;
                    int day ;
                    int year;
            
    };
    void Time::display(Date &d)
    {
            cout<<d.mouth<<"/"<<d.day<<"/"<<d.year<<endl;
            cout<<hour<<":"<<minute<<":"<<second<<endl;
    }
    Date::Date(int m,int d,int y):mouth(m),day(d),year(y)
    {
            
    }
    int main(void)
    {
            Time t(10,50,04);
            Date d(07,29,2014);
            t.display(d);
            return 0;
    }
    • sizeof不可以定义为标示符
    • 全局变量可以和局部变量同名。
    • 对于 char c[]="abcedfe"; sizeof(c);he strlen(c);的运算结果不同,sizeof要比strlen大一个单位,因为strlen() 函数忽略字符串最后的‘’ 结束符。
    • 内存分为,栈区,堆区,自由存储区,全局/静态区,常量存储区。全局变量和静态变量分配的地址位于全局/静态区。一般普通变量,局部变量,形参都分配在栈区,动态分配的位于堆区(使用new关键字 或者使用malloc()分配的空间,)由const关键字修饰的变量位于常量区,这里面也包括char *c="asdjfksdjflksd"。
    • 十进制化为十六进制,一般是先把十进制化为二进制,然后再把二进制化为十六进制,每四位二进制化为一位十六进制。
    • 使用malloc()开辟的空间必须使用free()释放,不然会造成内存泄露。

  • 相关阅读:
    字符串转换日期,日期转换字符串
    List中的Map
    一维数组
    流程控制的基本语法和应用
    《代码阅读方法与实践》读书笔记1
    专业实训题目需求分析
    2015年秋季个人阅读计划
    《人件集 人性化的软件开发》阅读笔记03
    《人件集 人性化的软件开发》阅读笔记02
    《人件集 人性化的软件开发》阅读笔记01
  • 原文地址:https://www.cnblogs.com/wsq724439564/p/3258160.html
Copyright © 2011-2022 走看看