c分析面向对象的实现技术
面向对象编程和结构化编程几乎在同一时期出现。但是由于早些时候的机器环境不允许,如内存、cpu等。导致面向对象技术没有得到及时的发展,而同时因为结构化程序对硬件要求不是那么强烈,所以及时的发展起来了。
但是虽然如此,更多的人在谈到面向对象时总觉得是种优越,总觉得"高人一等",自认为c++一定比c优秀。下面通过用c来实现对象,也说明它们之间的关系,以及面向对象的本质实现。
在开发用户管理系统的时候,一般的user类都如此,java实现:
public class User {
String name;
String password;
public User(String n, String pwd) {
this.setName(n);
this.setPassword(pwd);
}
public String getName() {
return this.name;
}
public String getPassword() {
return this.password;
}
public void setName(String n) {
this.name = n;
}
public void setPassword(String pwd) {
this.password = pwd;
}
public String toString(){
return "name:" + this.getName() + ",password:" + this.getPassword();
}
public static void main(String[] args) {
User u = new User("abc","456");
System.out.println(u.toString());
}
}
下面通过c的实现展示如何实现面向对象技术:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
* array.c
*
* Created on: 2009-7-20
* Author: cangyingzhijia
*
* c模拟面向对象实现
*/
struct User;
typedef char * String;
static String _toString(struct User *this);
static String _getPassword(struct User *this);
static String _getName(struct User *this);
static void _setName(struct User *this, String n);
static void _setPassword(struct User *this, String pwd);
static void _construct(struct User *this, String n, String pwd);
static void _destruct(struct User *this);
/**
* 定义方法操作表
*/
static struct operation {
void (*construct)(struct User *this, String n, String pwd);
void (*destruct)(struct User *this);
String (*toString)(struct User *this);
String (*getPassword)(struct User *this);
String (*get
相关文档:
这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......
最近在开发中,对常量参与运算时候,出了几个问题,特记录如下:
1.例子一(KEIL-51)
unsigned char recsum,xorsum;
recsum == 0xFF;
xorsum == 0x00;
if(recsum != (xorsum-1)) //这时候不相等
if(recsum != (unsigned ch ......
一位同学整理的常见笔试/面试题目,答案仅供参考,不代表本人观点。
这个东西有些参考价值,和同学讨论一下发现还是有些错误,
1.已知strcpy函数的原型是:
char * strcpy(char * strDest,const char * strSrc);
1.不调用库函数,实现strcpy函数。
2.解释为什么要返回char *。
解说:
1.strcpy的实现代码
char * st ......
为了编写高精度浮点数的运算,编程人员需要控制浮点数环境的各个方面:结果如何舍入,浮点数表达式如何简化与变换,如何处理浮点数异常(如下溢之类的浮点数异常是忽略还是产生错误),等等。C99引入了fenv.h来控制浮点数环境。
1、fenv.h:
定义了浮点数环境控制函数、异常 ......