易截截图软件、单文件、免安装、纯绿色、仅160KB

C头文件相互包含的问题

     在C++中,关于CPP的头文件互相包含的问题很让人头疼,其实我们谁也不愿意弄的结构混乱,难以理解,但有时又是有必须的。
     假定当前有两个头文件分别为 A.h  和 B.h,内容分别如下:
     A.h内容为:
     #ifndef  _A_H_
     #define _A_H_    
     #endif
     #include "B.h"
     class A
     {
          public:
          B  cl_b;
      };
    
     B.h内容为:
     #ifndef  _B_H_
     #define _B_H_    
     #endif
     #include "A.h"
     class B
     {
          public:
          A  cl_a;
      };
      编写相应的A.cpp和B.cpp,并编译,发现有错误提示,大意为类型不能找到。为何会出现这种情况?我们知道,C++编译器在编译源文件时采用的是预编译原则,对每一个数据总是需要知道其类型及大小。在A对象中要分配一块属于B的空间,而B中又有A的空间,是一个逻辑错误,因为在未完成预编译的情况下无法预知数据所占用的空间大小。
     
     根据指针的特点,指针在定义后并没有占用实际的内存空间,同时我们使用预先声明的方法,在VC编译环境下做如下修改:
     A.h内容为:
     #pragma once
     #include "B.h"
     class B;
     class A
     {
          public:
          B&n


相关文档:

C和C++混用

Yes, C和C++混用的确是natural,毕竟绝大多数C++学习者都从C学起,C++兼容C就是为了降低学习门槛。但是C和C++混用却不一定是necessary。 我们把C和C++归为一类,通常写作C/C++,那是因为从语言角度讲C的问题就是C++的问题,但是反过来就不成立,因此具体到某个工程的时候,你在开工之前就必须决定到底使用C还是C++,或者说 ......

[C/C++ Digestion] – 重载操作符


[C/C++ Digestion] –
重载操作符
作者:
Jason Lee @
http://blog.csdn.net/jasonblog
日期:
2010-04-17
 
[1]
重载操作符
重载操作符从大的方面来讲可以分为两类:最好或必须作为类的成员函数的,以及相反。而具体地讲,最好或必须作为类的成员函数的有赋值操作符
( = )
、下标操作符
( [] ) ......

Netbeans 下 用MinGW配置C/C++编译环境

今天配置了一下netbeans的c++编译环境,所以写一篇日志备忘,同时也供广大网友参考和学习。
准备资源:
1、netbeans 可以到官方网站下载zh-cn.netbeans.org/
2、MinGW编译器(MinGW中有g++和gcc编译器)点此处下载,可以到我提供的csdn的共享下载,由于大小限制分两部分
地址:第一部分 http://download.csdn.net/sour ......

pro*c编对步骤

step one:将.pc文件预编译为.c
    [ecif@localhost zyctest]$ proc sample1.pc
    显示信息:
    Pro*C/C++: Release 10.2.0.1.0 - Production on Tue Apr 13 14:07:05 2010
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
&nbs ......

史上最简单元的pro*c程序

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
EXEC SQL include sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);
EXEC SQL BEGIN DECLARE SECTION;
       & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号