C语言中的class函数有啥用~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的class函数有啥用~相关的知识,希望对你有一定的参考价值。
时间够的话,帮我写个例子~
Class可以通过extend关键字实现继承。super关键字表示父类的构造函数,用来新建父类的this对象。
子类须在constructor方法中调用super方法,这样才能得到父类的this,否则会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。
调用函数使用的例子
class A
constructor()
console.log(new.target.name);
class B extends A
constructor()
super();
new A() // A
new B() // B
扩展资料
实例属性的新写法
class IncreasingCounter
constructor()
this._count = 0;
_count = 0; //_count定义在类的最顶层与上面的constructor()写法等价
get value()
console.log('Getting the current value!');
return this._count;
increment()
this._count++;
2、C++是基于C的一种面向对象扩展,它在C原有结构体(struct)的基础上,扩充了struct的功能(增加了成员函数,以及访问控制,继承等),并增加了class这一新定义。实际上class和struct的唯一区别就是:struct中的默认访问控制权限是public,而class的默认访问控制权限是private。
struct RecTangle
int width; int height;
int pos_x; int pos_y;
;
给他添加一些成员函数
struct RecTangle
int width; int height;
int pos_x; int pos_y;
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
;
为了隐藏结构体内的成员,添加访问控制标识:
struct RecTangle
private:
int width; int height;
int pos_x; int pos_y;
public:
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
;
如果用class来代替struct,则需要添加访问控制标识.
比如用class来定义类C结构体
class RecTangle
public:
int width; int height;
int pos_x; int pos_y;
; 参考技术B 好像c语言里面没有class函数 我查了下手册 没有class 在面向对象语言中是 关键字 参考技术C 创建一个类,如:
class point
public:
point(int x=0,y=0)X=x;Y=y
point(point &p);
int GetX()returnX;
int写不下了
参考技术D 创建一个类,如:
class point
public:
point(int x=0,y=0)X=x;Y=y
point(point &p);
int GetX()returnX;
int写不下了
C语言中的宏定义有啥用?
#include<stdio.h>
#define N 10 // 这里我也可以直接弄个int N = 10啊,看不出这个宏有什么用处。。。。
int main(void)
for (int i=0; i<N; i++)
printf("HelloWorld\n");
return 0;
3Q!!
宏定义的用处主要体现在便于程序的调试上。
比如我要写一个计算圆相关信息(周长、面积等等)的程序,需要定义π(3.14):
#define PI 3.14
那么势必PI这个标识可以在程序中代替所有的3.14,如果我发现计算的精度不够,需要π的更多有效位时,则只需将宏定义修改为:
#define PI 3.1415926
那么程序中的所有PI都会变成3.1415926
可想而知,没有宏定义,我需要将代码中全部的3.14都手动改为3.1415926
即使是定义double PI=3.14;,你会发现当代码很长时,在乱军丛中找到一行“double PI=3.14;”是多么困难的事。
又比如数组,定义时是不能出现“int a[n];”这样的定义的,编译通不过,因为必须规定数组长度。
但如果是:
#define N 10
int a[N];
就可以,对宏定义编译器是不作检查的,应为宏定义只是简单的符号替换。所以一旦我还没有确定要定义多长的数组,但又想通过编译时,就可以提现宏定义的用处了。
如此看来,宏定义提升了程序编写的灵活性。
望采纳~如您还有不解,欢迎追问~ 参考技术A 首先解释一下宏定义的作用,宏定义是在编译的时候替换掉。具体到这个程序中就是所有出现N的地方都用10来替换,LZ会觉得为什么不直接写10呢?对吧,当时我也有这样的疑问。这个程序比较小,所以体现不出来,试想当程序代码上万行的时候,如果因为开发的需要这个10需要换成8,那么只需要在宏定义处的10改成8就行了,如果当时没有宏定义,那不知要一个一个的改到什么时候,估计LZ是新手,不懂可以追问 参考技术B 在这个题中是看不出什么好处 for (int i=0; i<N; i++) 这里的 N 完全可以用 10 代替,因为题目简单 但是如果比较复杂的 如二位数组啊a[M][N] 中可能一个 for (int i=0; i<N; i++)
for (int j=0; j<M; j++)
。。。。。。。。。。
M N 宏定义,就不需再用具体数值代替 这样 程序的可读性就好很多,你要知道,程序员编好程序 也会有人帮他复查的,如果你都用数值代替 ,一旦代码很复杂了你自己看的明白,别人就不知所云了,当然还有一些好处 如 当遇到较长数值时 用一个字母代替 有简化作用等。 参考技术C ①重用性高:比如你定义一个函数A里有个数组a[10],其他地方用到了函数A但是数组大小为100,若是用了宏定义就不用一个个改了,直接把函数复制过去#define N 10改为#define N 100即可
②不易出错:用到很多的某一数据时很管用如#define π 3.1415916 参考技术D 编译的时候替换成10
以上是关于C语言中的class函数有啥用~的主要内容,如果未能解决你的问题,请参考以下文章