嗨,我今天问了一个问题,关于如何在同一个向量数组中插入不同类型的对象,我的代码就是那个问题
gate* G[1000];
G[0] = new ANDgate() ;
G[1] = new ORgate;
//gate is a class inherited by ANDgate and ORgate classes
class gate
{
.....
......
virtual void Run()
{ //A virtual function
}
};
class ANDgate :public gate
{.....
.......
void Run()
{
//AND version of Run
}
};
class ORgate :public gate
{.....
.......
void Run()
{
//OR version of Run
}
};
//Running the simulator using overloading concept
for(...;...;..)
{
G[i]->Run() ; //will run …Run Code Online (Sandbox Code Playgroud) 我今年正在学习软件工程,我对标题中的问题感到困惑.
我的教授和参考文献("软件工程实践者方法")都将这三个标题区分为不同的模型.但是,我看不出明显的区别,因为他们的方法看起来与我相同,但使用不同的语句来定义它们.我觉得它们实际上代表了相同的过程模型.
任何人都可以更好地解释不同的模型吗?
可能重复:
循环中i ++和++ i之间的区别?
任何人都可以解释这些之间的区别:
for(unsigned col = 0; col < n; ++col, num_to_fill >>= 1U)
{
for(unsigned row = num_to_fill; row < (1U << n); row += (num_to_fill * 2))
{
std::fill_n(&output[col][row], num_to_fill, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
和
for(unsigned col = 0; col < n; col++, num_to_fill >>= 1U)
{
for(unsigned row = num_to_fill; row < (1U << n); row += (num_to_fill * 2))
{
std::fill_n(&output[col][row], num_to_fill, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
什么时候col=0,ex.1 Output[col][row]将在output[1][row]和ex.2 Output[col][row]中output[0][row] …
我想我做了所有必要的配置,但我仍然得到这个:
Error 1 fatal error C1083: Cannot open include file: 'boost/config.hpp': No such file or directory File:c:\documents and settings\administrator\my documents\visual studio 2008\libs\boost_1_43_0\boost\smart_ptr\shared_ptr.hpp Line:17
Run Code Online (Sandbox Code Playgroud)
以下是我为添加include和lib文件的目录所做的设置的屏幕截图:
1 http://i37.tinypic.com/153whuv.png
2 http://i37.tinypic.com/2wmi9er.png
3 http://i34.tinypic.com/2ur71g2.png
我错过了什么吗?
我几乎完成了一个关于在C++中使用OOP的课程,我们在该课程中编写的所有程序都是控制台应用程序.我还完成了C编程的大学课程,所以我认为我有扎实的C编程基础,现在是向GUI迈出一大步的时候了.
我做了很多谷歌搜索,每次我阅读更多页面时我都会感到困惑,我了解到过去有太多着名的选项,包括WinAPI和MFC.我试着调查WinAPI,但这看起来非常艰难,需要很多时间,所以我问了导师的建议,他告诉我如果我想编写GUI程序,我最好学习C#或Java,而不是使用速度更快的C++.更好地设计用于驱动程序等低级编程应用程序.所以我在网上搜索了C++是否仍然用于编写现在的应用程序,令我惊讶的是Firefox,谷歌Chrome,Notepad ++以及sourceforge.net上的许多其他GUI应用程序是用C++编写的,与我教师的建议相矛盾.另外我了解到你可以使用QT或GTK库在C++中构建GUI应用程序,但我不知道如何做到这一点,或者如果这是真的.
所以我的问题是,无论学习曲线多么陡峭,现在有效编写GUI程序的最佳选择是什么.我搜索了C++ GUI选项,因为它认为它比Java或C#应用程序更快,如果有人有不同的意见请说明.
我读到JFrame是由几个窗格组成的......什么是窗格,为什么Jframe由窗格组成?为什么有一个JPanel,而JFrame看起来与JPanel完全一样,但是有一个菜单栏和一个关闭按钮,那么JPanel的需求是什么?任何人都可以清楚地向我解释这三个组成部分的定义和用途吗?
在模拟逻辑门的程序中,我从使用数组切换
node N[1000];
Run Code Online (Sandbox Code Playgroud)
到矢量
vector<node> N;
Run Code Online (Sandbox Code Playgroud)
我的程序在使用向量之前确实工作正常,但现在它打印出错误的结果,所以我尝试调试,我发现错误发生在这里:
node* Simulator::FindNode(string h)
{
int i;
for(i = 0; i < NNodes; i++)
{
if (N[i].getname() == h)
{
return &N[i];
}
}
node n ;
N.push_back(n);
N[NNodes].setname(h);
NNodes++;
return &N[NNodes-1]; //why?because of NNodes++
}
// ...
node* inp1;
node* inp2;
node* out;
string NodeName;
inp_file >> NodeName;
inp1 = FindNode(NodeName);
s1 = inp1;
inp_file >> NodeName;
inp2 = FindNode(NodeName); //inp1 is destroyed here
inp_file >> NodeName;
out = FindNode(NodeName); //inp2 and inp1 …Run Code Online (Sandbox Code Playgroud) 嗯..我现在正在学习java,我很想知道这会产生明显的性能提升吗?如果许多开发人员遵循类似的Windows编程方法(C++后端和Java UI)或者像python一样使用其他语言?
*this:C++后端和UI的其他语言,而不是使用其他语言编写整个程序.
我正在从 Robert C. Martin 的《Clean Architecture》一书中学习建筑。本书强调的主要规则之一是 DIP 规则,该规则规定源代码依赖项必须仅指向内部,指向更高级别的策略。尝试将其翻译到嵌入式领域假设 2 个组件scheduler和timer. 调度程序是高级策略,它依赖于低级计时器驱动程序,需要调用 API get_current_time(),set_timeout()我只需将模块拆分为一个实现文件timer.c和一个标头(一个接口?)timer.h,并且scheduler.c可以简单地包含timer.h使用这些 API 。读这本书将前面的场景描述为违反了依赖关系规则,并暗示应该实现两个组件之间的接口来打破依赖关系。
例如,要模仿 c 中的情况,timer_abstract可以包含带有函数指针的通用结构
struct timer_drv {
uint32 (*get_current_time)(void);
void (*set_timeout)(uint32 t);
}
对我来说,这看起来像是过度设计。一个简单的头文件还不够吗?C 头文件可以被视为接口吗?