zoukankan      html  css  js  c++  java
  • C++(十六) — 类中引用成员函数、命名空间的使用

    1、为什么类中引用成员函数?

      类将属性和方法做了封装。类是一种数据类型,也就是:固定大小内存块的别名。

      类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块。

      此时,定义对象后,类内定义的变量就会执行一次初始化,但是主函数输出area时就是乱码,因为是直接去对应内存取值,而不是调用函数计算。

      下面例子就说明了,类内成员函数的作用。

    class circle
    {
    public:
        double r;
        double pi = 3.14;
        // 定义一个对象后,初始化时已经执行了,当时r是一个随机值,所以结果:area内存中也是一个随机值
        double area = pi*r*r; 
    
        double getS(double r)
        {
            double ms = pi*r*r;
            return ms;
        }
    };
    
    int main()
    {
        circle c1;
        cout << "Please input your r: " << endl;
        cin >> c1.r;
    
        // 执行此句话,只是从变量所标示的内存空间中拿值,并没有执行这句话。
        // 所以对 r 赋值, 对area没有任何影响,
        cout << c1.area << endl;        //乱码
        cout << c1.getS(c1.r) << endl;  //输出:正确的面积值
    
        system("pause");
        return 0;
    }

     2、命名空间的使用

    (1)当使用 #include <iostream> 时,必须和,using namespace std;一起使用。因为,该头文件没有定义全局命名空间,如果不想引用就需要:std::cout,指定命名空间;

    (2)C++标准规定,头文件不用后缀 .h ,如果使用后缀,则调用的C得库。

    (3)C++可以自己定义命名空间,而且可以嵌套命名空间。

    #include <iostream>
    using namespace std;
    
    namespace namespaceA
    {
        int a = 10;
    }
    
    namespace namespaceB
    {
        int a = 20;
        namespace namespaceC
        {
            class Teacher
            {
            public:
                char name[20];
                int age;
            };
        }
    }
    
    void main()
    {
        using namespace namespaceA;
        using namespace namespaceB;
        cout << namespaceA::a << endl;
        cout << namespaceB::a << endl;
    
        using namespaceB::namespaceC::Teacher;
        Teacher t1;
        t1.age = 30;
        cout << t1.age<<endl;
        system("pause");
    }
  • 相关阅读:
    linux 配置Apache 、PHP
    SQL Server DML(SELECT)常见用法(二)
    SQL Server DML(UPDATE、INSERT、DELETE)常见用法(一)
    PropertyGrid—添加EventTab
    PropertyGrid—添加属性Tab
    PropertyGrid—默认属性,默认事件,属性默认值
    PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框
    PropertyGrid--为复杂属性提供编辑功能
    PropertyGrid--基本功能
    Intellij IDEA使用(一)项目模板类型
  • 原文地址:https://www.cnblogs.com/eilearn/p/10124869.html
Copyright © 2011-2022 走看看