4.1 Member的各种调用方式

Nonstatic Member Functions(非静态成员函数)

考虑如下代码:

float magnitude3d(const Point3d *_this) {};
float Point3d::magnitude3d() const {};

选择 member function不应该带来什么额外负担,因为编译器内部已经将“member函数实例”转换为对等的“nonmember函数实例”

名称的特殊处理

一般而言,member的名称前面会被加上class名称,形成独一无二的命名:

class Bar {public : int ival;}

其中ival有可能变成这样:ival_3Bar;为什么编译器要这么做?请考虑如下派生操作:

class Foo : public Bar {public : int ival;};

Foo对象内部结合了base classderived class两者:

class Foo {
public:
	int ival_3Bar;
	int ivla_3Foo;
}

不管你要处理哪个ival,通过"name manglin",都可以绝对清楚指出来。

virtual Member Functions(虚拟成员函数)

如果normalize()是一个virutal member function,那么以下的调用:

ptr->normalize();

将会被内部转化为:

(*ptr->vptr[1])(ptr);
  • vptr表示由编译器产生的指针,指向virtual table
  • 1是virtual table slot的索引数值,关联到nomalize函数
  • 第二个ptr表示this指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi是一种面向对象的编程语言,同时也是一款功能强大的集成开发环境。通过使用Delphi,我们可以轻松地开发各种应用程序,包括图像处理应用程序。Tesseract是一种开源OCR(光学字符识别)引擎,它可以将扫描的图像中的文本识别出来,并以可编辑的文本形式呈现出来。通过将Delphi与Tesseract集成使用,则可以实现在Delphi应用程序中进行图像文字识别的功能。 在Delphi中调用Tesseract 4.1,需要进行以下步骤: 1.下载安装Tesseract 4.1,在https://github.com/tesseract-ocr/tesseract/releases 中下载最新版的Tesseract OCR引擎,将其安装至本地计算机中,并将其路径添加至环境变量中。 2.创建一个新的Delphi项目,为了使用Tesseract OCR引擎,需要在Delphi中添加一个组件,如:Tesseract OCR ActiveX组件,可在Google中搜索下载相应的组件。 3.将所需的图像加载至Delphi项目中,这些图像可以来自于扫描结果、拍摄结果等。 4.添加代码:导入Tesseract OCR ActiveX组件,在代码编辑器中通过Tesseract OCR ActiveX组件调用Tesseract 4.1。 5.定义输出格式:在代码编辑器中定义所期望的输出格式,常见格式包括TXT、JSON等。 通过以上步骤,在Delphi应用程序中即可使用Tesseract 4.1进行图像文字识别,这样便可以方便地将扫描文本中的结构化信息转换为可编辑的文本格式,从而更加便捷地进行后续操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值