Tag: oop

在C ++中使用SQLite:对象函数作为回调

所以,我正在开展一个侧面项目,以保持我的c ++技能新鲜(自从我用c ++完成工作已经很多年了)。 我正在研究我将使用SQLite的东西。 我有一个SQLite代码的包装器。 我注意到的一件事是SQLite在其sqlite3_exec(…)函数中使用了c风格的回调函数。 我想让回调函数成为一个对象方法,因为我希望它能够修改对象变量,但我不确定如何准确地执行此操作。 我已经检查了stackoverflow上的其他类似问题,但没有任何帮助。 这是我如何声明我的包装类: class DBAdapter { private: sqlite3* db; int getUserRecords(std::string); std::vector records; int callbackSel(void*, int , char**, char**); public: DBAdapter(); ~DBAdapter(); int open(std::string); void close(); int insertRecord(); int deleteRecord(); int getNumUserRecords(); }; 以下是我在getNumUserRecords中尝试使用回调(callbackSel)的方法: int DBAdapter::getUserRecords(std::string name) { std::string sql = “SELECT” + name + ” from USERS”; char* […]

我应该学习在C中实现OOP吗? 是否有在C中使用OOP的项目?

最近,我用几乎所有的练习和例子读完了K&R。 我打算转到“加速C ++”,我遇到了Axel Schreiner用ANSI-C 编写的 OOP 书 。 我很好奇,想要学习它。 但是在投入时间之前,我想知道在C中实施OOP的价值。这样我就可以决定花多少时间在它上面。 在C中实现OOP,它真的被使用了吗? 还是只是为了心理锻炼? 他们的任何现有C项目是否使用OOP? 什么时候在C中使用OOP是个好主意? 我应该把时间花在它上面吗? 我认为我在这里提到我的背景是合适的,这样你们就可以更好地指导我了。 我大约一年前完成了C,C ++,Java和OOP理论,也找到了工作。 但是后来乔尔的博客和SO让我意识到我缺少很多东西。 所以我再次拿起书,开始正确研究它们。 K&R,Accelerated C ++,C ++算法和其他一些书籍是我努力提高自己的技能。 我不是OOP的新手。 那么你会建议什么? 谢谢你的时间。

不释放内存是否可以接受

我正在研究一个应该从命令行使用的项目,其语法如下: program-name input-file 该程序应该处理输入,计算一些东西并在stdout上吐出结果。 我选择的语言是C ++,原因有几个我不想辩论。 计算阶段将是高度符号化的(思考编译器)并将使用非常复杂的动态分配数据结构。 特别是,它不适合RAII风格的编程。 我想知道忘记释放内存是否可以接受,因为我希望整个计算消耗的内存少于可用内存,并且程序完成后OS可以在一步中自由回收所有内存(假设程序终止)很快)。 你对此有何看法? 作为备份计划,如果我的项目需要以服务器或交互方式运行,我认为我总是可以将垃圾收集器重新编译为源代码。 有没有人有使用C ++垃圾收集器的经验? 他们运作良好吗?

C中的派生类 – 您最喜欢的方法是什么?

根据我在面向对象的C编程方面的经验,我已经看到了两种实现派生类的方法。 第一种方法 ,将父类定义为.h文件。 然后,从这个类派生的每个类都将执行: 文件parent_class.h: int member1; int member2; 文件测试。: struct parent_class { #include “parent_class.h” // must be first in the struct } struct my_derived_class { #include “parent_class.h” // must be first in the struct int member3; int member4; } 第二种方法 ,会做: 文件测试。: struct parent_class { int member3; int member4; } struct my_derived_class { struct […]

为Cocoa(触摸)开发创建自己的库的指南

我目前正在使用许多与自定义方法相同的子类对象。 创建我自己的库可以更方便,我可以用于几个项目 。 目标是让我自己的类与UIView , CGRect等类一样可用,包括CGRect等方便的方法,包括类和结构。 总结一下,我想创建自己的等价物: 像UIView这样的课程 像CGRect这样的CGRect 像CGRectMake这样的便捷function 将它作为库提供 将其作为XCode模板提供,因此,将这些自定义对象作为XCode中的“新文件”提供 所以基本上我正在寻找有关如何创建类,结构等的说明,以便创建上述所有内容。 做这个的最好方式是什么? 320项目似乎是一个很好的起点。 但它缺乏(我认为): 立即在新项目中提供图书馆 在“新文件”下提供新类 即使我要创建自己的静态库, 我是否能够在应用程序商店中发布应用程序 ,因为手机不支持链接到第三方库? 为方便起见,这些基本上是子问题,涵盖了这个问题的范围: 如何为Mac / iPhone开发创建自己的库? 如何为此库创建类,结构和内联函数? 如何基于此库创建自己的Xcode模板? 我是否可以使用自己的静态库发布iPhone应用程序?

C中的面向对象模式?

可能重复: 你能用C编写面向对象的代码吗? 我正在用C语言编写一个大型应用程序并且听说过C ++程序员出现之前用于在C中实现“面向对象”模式。我的问题是这个模式通常的forms是什么? 以及如何在现代C应用程序中实现这样的OOP模式?