易截截图软件、单文件、免安装、纯绿色、仅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 指针

#include
void printptr(int *i){
printf("&i of printfptr = %#X\n",&i);
printf("i of printfptr = %#X\n",i);
printf("*i of printfptr = %d\n",*i);
printf("i+1 of printfptr = %#X\n",i+1);
printf("*(i + 1) of printfptr = %d\n",*(i ......

一段用来判断日期是星期几的C代码

/////////////////////////////////////////////////
// 主题:一段用来判断日期是星期几的代码
// 描述:摘自《CCFAQ》
// 作者:天之枫
// 时间:2010-02-13
///////////////////////////////////////////////// 
#include <stdio.h>
int dayofweek(int y, int m, int d) // 判断输入的日期是星期几 ......

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


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

C bulider计算器初步

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
int   flag=0; // ......

嵌入式Linux的键盘驱动 1(通过I2C实现)

CPU:s3c2410
OS:Linux Kernel 2.6.30.4
最近刚做完的嵌入式键盘的驱动,由于初次接触,总结一下。
首先简单说说这个键盘的实现原理,IIC总线工作原理没必要废话,s3c2410的手册中讲的很明白。硬件方面这个键盘通过一个AVR单片机(ATMEGA48)接在IIC总线上,也就是说,直接与IIC总线链接的设备并不是我们用的键盘,而是 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号