关于c++中const成员函数

const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数.

class CTest
{
public:
    CTest(const CTest& t) // 这里t是const修饰的类的引用,它所调用到的方法应该是const成员函数
    {
        a = t.Fun(); 
    }
    int Fun()  // const成员函数
    {
        return a;
    }
private:
    int a;
};
int main()
{
    return 0;
}

关于C++指针的引用

注意,只有指针的引用(*&)

没有引用的指针这么一说,引用的指针(&*)编译也是绝不可能通过的

指针的引用,代码如下:

#include <iostream>
using namespace std;
class A
{
public:
    int m_a;
};
void f(A * &a)
{
    cout << (a)->m_a << endl;
}
int main()
{
    A a;
    a.m_a = 88;
    A *p = &a;
    f(p);
    return 0;
}

分析的时候从右向左分析
f(A * &a)
先是 & , 表明这是一个引用
然后是 *
表明这是一个指向 A* 的引用

配置VC++使用PROC

假定ORACLE安装目录为D:/oracle/

工具–>选项–>项目和解决方案–>VC++目录

可执行文件 D:/oracle/ora90/BIN
包含文件 D:/oracle/ora90/precomp/public
库文件 D:/oracle/ora90/precomp/lib/msvc

确定–>重启VS–>OK

C++应用程序在Windows上的启动过程

一个C++应用程序的启动过程:

其实是系统调用CRT,然后CRT调用的WinMain.

a.shell调用CreateProcess激活App.exe
b.系统产生一个进程内核对象,使用计数值加1
c.系统为此进程产生4GB的地址空间
d.加载器将必要的码加载到上述地址空间中,包括App.exe的程序,资料以及所需要的dll。它们被记录在可执行文件PE格式的.idata section中。
e.系统为此进程建立一个执行线程,即主线程。执行线程才是CPU时间的分配对象。
f.系统调用C Runtime函数库的StartUp code
g.startup code调用APP程序的WinMain函数
h.APP程序开始运作
i.使用者关闭APP,退出消息循环,退出WinMain函数
j.返回到startup code
k.返回到系统,系统调用ExitProcess结束进程。