美文网首页C++
学习笔记C++(作用域符号、类、函数指针)

学习笔记C++(作用域符号、类、函数指针)

作者: 灿烂的GL | 来源:发表于2018-05-19 21:39 被阅读15次

作用域符号

两种主要用法:

1、类外定义函数

声明一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数

2、调用变量

全局:如在程序中的某一处你想调用全局变量a,那么就写成::a;(也可以是全局函数)

类:如果想调用class A中的成员变量a,那么就写成A::a;

命名空间:另外一个如果想调用namespace std中的cout成员,你就写成std::cout(相当于using namespacestd;cout)意思是在这里我想用cout对象是命名空间std中的cout(即就是标准库里边的cout);

注:全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分


类:详细笔记参考链接

举一个有代表性例子如下:

#include using namespace std;

        class Point

        {

            public:

                void setPoint(int x, int y); //在类内对成员函数进行声明

                void printPoint();

            private:

                int xPos;

                int yPos;

        };

        void Point::setPoint(int x, int y) //通过作用域操作符 '::' 实现setPoint函数

        {

            xPos = x;

            yPos = y;

        }

        void Point::printPoint()      //实现printPoint函数

        {

            cout<< "x = " << xPos << endl;

            cout<< "y = " << yPos << endl;

        }

        int main()

        {

            Point M;        //用定义好的类创建一个对象 点M

            M.setPoint(10, 20); //设置 M点 的x,y值

            M.printPoint();    //输出 M点 的信息

            return 0;

        }

注:依 setPoint 成员函数来说, 在类内声明的形式为 void setPoint(int x, int y); 那么在类外对其定义时函数头就应该是void Point::setPoint(int x, int y) 这种形式, 其返回类型、成员函数名、参数列表都要与类内声明的形式一致。


题1 :形参和实参的区别

1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 

2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 

3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。 

4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。


函数指针:

一个基本例子(视频讲解参考)

相关文章

  • 学习笔记C++(作用域符号、类、函数指针)

    作用域符号 两种主要用法: 1、类外定义函数 声明一个类A,类A里声明了一个成员函数void f(),但没有在类的...

  • C++学习 2018-12.17~12.23

    本星期主要学习了c++的基础语法,包括输入输出,函数,类,变量类型,作用域,循环,判断,数组,引用,指针刚开始看....

  • c++随手记

    作用域符号``::"的三种主要情况 全局作用域符号用法 ::name,name可指代全局变量或者全局函数 类作用域...

  • JavaScript作用域学习笔记

    @(JS技巧)[JavaScript, 作用域] JavaScript作用域学习笔记 概念: 作用域就是变量与函数...

  • 2018-01-10

    六、作用域 作用域是一个标识符在程序正文中有效的区域。C++中标识符的作用域有函数原型作用域,局部作用域,类作...

  • C++ - this 指针

    从 C++ 程序到 C 程序的翻译 作用就是指向成员函数所作用的对象 this 指针作用 在类的非静态成员函数中,...

  • 作用域

    标识符的作用域有函数原型作用域、局部作用域(块作用域)、类作用域和 命名空间(namespace) 作用域 函数原...

  • C++函数指针和Swift的函数对象

    C++函数指针和Swift的函数对象 在C++中学习函数指针式非常痛苦的事情,而在Swift里面学习函数指针则是非...

  • 我的JS笔记汇总

    学习JS的笔记整理: 变量; 类型检测; 类型转换; 作用域; 执行上下文; 函数; 闭包; 模块; 原型; 类;...

  • javascript作用域

    笔记类文章 作用域 每个环境能访问到的标识符集合,我们称之为“作用域”有三种作用域: 全局 函数 块——{} 静态...

网友评论

    本文标题:学习笔记C++(作用域符号、类、函数指针)

    本文链接:https://www.haomeiwen.com/subject/gyuadftx.html