design专题提供design的最新资讯内容,帮你更好的了解design。
任何人都可以建议使用Web服务而不是RPC(而不是xml-rpc)作为两个C进程之间的通信通道,这两个进程将由同一个团队开发吗?注意:Web服务不保证订购交付! 当人们拿锤子时,他们倾向于将所有问题看作钉子.这就是为什么人们倾向于将Web服务放在任何地方,就好像它是两个流程进行通信的唯一方式. 在你的情况下,RPC似乎是一个更好的选择,更高的性能,更少的内存使用,更简单的实现(在C中)…
假设我正在构建一个库,以便在C中使用quuxes. Quuxes需要两个状态变量成功sporked: static int quux_state; static char* quux_address; /* function to spork quuxes found in a file, reads a line from the file each time it's called.
我为大多数类型使用接口/抽象基类,并且不经常从具体类继承,但是我最近遇到需要继承或组合的情况.我已经意识到一个界面“程序到界面而不是实现”,但最近决定深入挖掘. 我已经看到参数against inheritance,我已经看到了反对arguments,但我很好奇大型代码库的其他维护者实际上在现实生活中做了什么.恐惧是夸张吗?你是从具体的班级继承还是继承怀疑论者呢?我特别感兴趣的是那些在C工作的人的
我有一个枚举类如下: enum class Age { Eleven, Twelve, Thirteen }; 然后我有一个名为vector< Person>的方法. GetPeopleOfAge(年龄).什么是一个好的设计,以便开发人员可以打电话给这个并让11,12和13的人?我可以称它为三次,这很糟糕,但我确实想提一下我考虑过它.我可以添加一个All枚举并对我的方法进行
我首先假设一般来说,在堆栈中分配小对象,在动态内存中分配大对象是个好主意.另一个假设是,在尝试学习内存,STL容器和智能指针时,我可能会感到困惑. 考虑下面的例子,我有一个必须通过智能指针在免费商店中分配的对象,例如,我可以依赖客户从工厂获取所述对象.此对象包含一些使用STL容器专门分配的数据,该容器恰好是std :: vector.在一种情况下,这个数据向量本身是使​​用一些智能指针动态分配的,
作为C程序员,我们必须处理概念和相关关系 实现它们之前的概念. 但是,如何在程序语言C中设计软件? 如何在C中没有课堂的帮助下处理概念. 有关: > What is the best way to plan and organize development of an application in C? > Struggling with C coming from Object Oriented
我正在寻找一种优雅有效的方式来表示和存储通过明确抽样构建的任意概率分布. 该分销预期具有以下属性: >样本是浮点值,但原则上可以认为分辨率低至.001 >样本从间隔[-4000; 4000] >然而,对于任何两个样本a,b,| a – b | < 40 > 90%的时间,它会有一个尖峰或几个尖峰彼此接近 > 10%的时间,将有一个不平坦的高原宽度为0.5到5的高峰. 通常的表示 – 直方图阵列 –
我正在维护一个包含Mutex类的库.我不能决定这个类暴露的lock()和unlock()函数是否应该是const.我在网上寻找类似的代码,可以找到这两个实现. 首先实现,lock()和unlock()不是const.这意味着在const函数中使用Mutex类的人应该额外调用Mutex的函数: class Mutex { public: void lock(); void unlock(
我有一个由Graph和Node类实现的有向无环图.每个节点都有一个指向childern的指针列表和一个指向父节点的指针列表.我最近添加了父母,因为一些算法需要快速访问父列表,而且图形很小,每个节点只有很少的连接,所以没有内存问题. 子列表使用std :: shared_ptr,以便节点保存在内存中至少与父节点一样长.但是我不想让一个节点拥有它的父母,所以我使用weak_ptr作为父母的指针. 但是
面向对象的程序员似乎很有趣.他们不仅每两年处理重大框架修订,每五年都会处理新的和改进的语言,还可以处理针对其编程风格量身定做的设计实践.从测试驱动开发到设计模式,面向对象的程序员有很多需要跟上的. 相比之下,C编程世界似乎更加镇静.该语言的最后一个修订是1999年,下一个修订可能远远不够令人印象深刻. K& R第二版仍然是许多人的好介绍性文本,尽管现在二十岁. 如果我们作为C程序员已经开发和改进了
提出这个问题,因为我觉得我的基础的成员变量将在派生类后面需要.有没有保护他们的缺点? 编辑:编辑更好地显示我的意图. 编辑:@sbi:这也是错的吗? 此类将用于其他类中的错误记录和检索.最好从它衍生或使用它的对象 – 我不知道.但是我认为getter和setter方法是这个类是什么. class ErrorLogger { public: //Making this functi
我很难适应@HowardHinnant的待处理C 1z提案 N3980与 tabulation hashing合作. 从头开始计算一个制表哈希与N3980中描述的散列算法(Spooky,Murmur等)相同.这不是那么复杂:只需通过hash_append()序列化任何用户定义类型的对象,并让哈希函数在一个随机数表中更新一个指针. 当尝试实现列表哈希的一个不错的属性时,麻烦就开始了:如果对象被突变,
Objective C / Cocoa中的构造函数有两种选择: 1.类构造函数 Product *product = [Product productWithIdentifier:@"Chocolate"]; // Use product 2. Alloc / init构造函数 Product *product = [[Product alloc] initWithIdentifier:@"Cho
我有一个将产生多个线程的应用程序.但是,我觉得线程访问数据不一定存在问题. 这是线程应用程序的结构(抱歉粗略): MainThread / \ / \ / \ Thread A Threa
我还有一个问题,希望能够总结我的想法. 假设我有以下3个类: 班级球员: class Player { private: int positionX, positionY; public: void move(Board& b) { // player changes its position on the board(move) b.removeCharF
出于某种原因,我在std :: set中迭代一个类的元素,并且想要稍微修改键,知道顺序将保持不变. std :: set上的迭代器是const_iterators,因为如果修改了密钥,则可能导致订单错误,从而导致设置损坏.但是我确信我的操作不会改变集合中元素的顺序. 目前,这是我的解决方案: class Foo { public: Foo(int a, int b): a_(a),b_(b
我有以下代码,在c中想到简单的射手: // world.hpp //---------- class Enemy; class Bullet; class Player; struct World { // has-a collision map // has-a list of Enemies // has-a list of Bullets // has-a pointer
我总是对谁应该了解对方感到困惑. 例如: Circle.Draw(& canvas)或Canvas.Draw(& circle) 或绘制(&画布,&圈) EmployeeVector.Save(& file)或File.Save(& employee_vector) 甚至还是 void operator() (Employee e) { Save( e.Serialize();} for_ea
方法1: class Employee { public: virtual int calculateSalary() = 0; }; class PermanentEmployee : public Employee { const int salaryPerMonth; public: PermanentEmployee(int sal) : salaryPerM
我有一个使用Chrome浏览器等标签的应用程序.现在我希望能够打开更多表格而不仅限于一种表格.这些表格应该是相同的,但如果我关闭主表格,所有表格都将被关闭.如何使所有表格都相同,所以无论我关闭哪种形式,只关闭该表格而不是在所有表格关闭之前退出申请?有任何想法吗? Image of my explorer 亲切的问候 Roy M Klever 这样做并不难,尽管它会很快变得复杂,具体取决于你想要它的