« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
|
|
[C/C++编程]Applied C++读书日记(1) |
大隐于市 发表于 2005/6/1 14:51:08 |
这本书我刚从图书馆借来1天,内容是关于使用C++构造图像处理软件,这对于我是个新的知识点,争取能够完整地读下来,并且有所进步。
第一章比较简单,从Chapter2开始:
第二章内容包括: C++概念:类设计,简单内存分配,赋值和复制构造函数 图像框架概念:图像对象设计,缩略图 目的:灰度图像作为输入,根据用户指定比例计算出缩略图
2。1图像类的设计 图像类的属性: 灰度像素的二维数组,这里一个像素表示为一个8位无符号量(unsigned char),图像的大小有图像的宽度和高度决定。 允许对图像的像素进行随机访问,每个像素都由坐标(x,y)来描述,(0,0)表示左上角像素(width-1 ,height-1)表示右下角像素。 简单的内存分配机制:
阅读全文(1546) | 回复(0) | 编辑 | 精华 | 删除 |
[C/C++编程]关于fork()的点点滴滴(1) |
大隐于市 发表于 2005/5/27 19:42:11 |
fork()函数用于从已存在进程中创建一个新进程。可以通过检查fork()函数的返回值知道哪个是父进程,哪个是子进程。父进程得到的返回值是子进程的进程号,而子进程则返回0。pid_t fork(void);pid即为返回的进程ID号。
#include <sys/types.h> #include <unistd.h>
int main(){ pid_t pid;
switch (pid = fork()) { case -1: /* 这里pid为-1,fork函数失败 */ /* 一些可能的原因是 */ /* 进程数或虚拟内存用尽 */ perror("The fork failed!"); break;
case 0: /* pid为0,子进程 */ /* 这里,我们是孩子,要做什么? */ /* 但是做完后, 我们需要做类似下面: */ _exit(0);
default: /* pid大 | |
|
[C/C++编程]C++头文件一些注意 |
大隐于市 发表于 2005/5/27 0:29:45 |
现在所有的标准C++头文件都是没有.h的 如<iostream.h>(老版本) 对应<iostream>(新版本)
C中头文件在c++中标准为 前面加c 后面没有.h <stdio.h>(c头文件)变成<cstdio>(C++标准) 当然可以继续使用C头文件 没有任何影响 但是使用c++标准中的C头文件时要注意所有的C函数都是放在namespace std中
这些标准头文件都是放在 namespace std;中 所以需要在INCLUDE完c++标准头文件后 using namespace std; | |
|
[C/C++编程]C++命名空间 |
大隐于市 发表于 2005/5/27 0:23:35 |
C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将你的string user_name变量定义在一个不同名字的命名空间中。
#include <iostream> #include <string> using namespace std;
//两个在不同命名空间中定义的名字相同的变量 namespace myown1{ string user_name = "myown1"; }
namespace myown2{ string user_name = "my | |
|
[C/C++编程]C++风格的cast |
大隐于市 发表于 2005/5/27 0:12:29 |
C++风格的转型(cast)运算符有什么区别?
C++除了C风格的转型运算(直接使用类型关键字)之外,提供了更加具体的转型控制,它们分为static_cast<>,dynamic_cast<>,const_cast<>,reinterpret_cast<>四种。它们具有类似模板的语法,但是实际上是运算符。
static_cast用于内建数据类型之间的转型。 dynamic_cast用于在继承体系中进行安全的向下转型(downcast),也就是从基类指针/引用向派生类指针/引用的转型。 const_cast用于取消变量的常量性修饰。 reinterpret_cast用于对变量重新进行二进制解释,因此它的转型结果是编译器实现相关(implementation-dependent)的,不是可移植的,一般在实践中,只有迫不得已,才使用这种转型。例如直接将整数常量转型为某个自定义的struct类型,驱动程序的编写中常常使用这种技术。
概念上说,C风格的转型,大致相当于static_cast | |
|
« 1 › |
|
统计 |
blog名称:若望的天地 日志总数:30 评论数量:60 留言数量:0 访问次数:152288 建立时间:2005年5月25日 | |
|