我正在考虑设计一个允许人们以图形方式开发C++代码的应用程序的可能性.当我发现Scratch(参见网站和教程视频)时,我感到很惊讶.
我相信大多数C++都可以用图形表示,除了预处理器指令和可能的函数指针.
您认为哪些C++功能可以(或不是)由图形项表示?这种申请的利弊是什么?它比"普通"C++简单多少?
RECAP和更多:
优点:
缺点:
考虑到我们 - 我的工作 - 已经有相当多的现有C++代码,我不是在寻找一种全新的编程方式.我正在考虑一种与遗留代码完全兼容的替代编程方式.人们将用于新代码的某种"病毒语言",并且希望最终也会用来替换现有代码(它可能有用).
您如何看待这种病毒式方法?
说到手动和图形编程,我倾向于同意你的答案.这就是为什么理想情况下,我会找到一种方法让用户总是在打字和图形编程之间做出选择.逐行解析器(+部分解释器)可能能够将类型化代码转换为图形设计.这是可能的.让我们全都交叉.
是否有提供打字和图形编程功能的警告我应该仔细考虑和分析?
我已经处理过模板类(更常见的是类型级C++)及其图形表示.看到存在于模板类的图形表示的示例.框表示类或类模板.第一个顶级节点是类本身,下一个节点(如果有的话)是类中的typedef指令.底部节点是模板参数.当然,边缘将类连接到实例化的模板参数.我已经有了处理这种类型级图表的原型.
如果您觉得这种表示模板类的方式是完全错误的,请不要犹豫,为什么这么说!
我正在更新一个10年前的代码库,并在Mac和Windows上使用Metrowerks Code Warrior.
我正在更新到OS X,XCode 3.2,Universal Binary.
我似乎得到了很多模板相关的错误,而不是模板上的天才(并且忘记在早餐时吃健康剂量的磨砂模板),我发现自己对模板可移植性问题感到疑惑.
IIRC,模板是/或可以是编译器特定的?
有没有人对他们推荐的模板有建议或教程?
void aFunction_2()
{
char* c = new char[10];
c = "abcefgh";
}
Run Code Online (Sandbox Code Playgroud)
问题:
将:c = "abdefgh"
存储在new char[10]
?
如果c = "abcdefgh"
是另一个内存区域我应该解除它吗?
如果我想保存信息,char[10]
我会使用一个函数strcpy
来将信息放入char[10]
?
我有一个带有成员的类m_preferences
(一个包含单词和特征之间关联的向量).
在这个类中,m_preferences
它不是静态的,因此该类的任何实例都具有其特定的m_preferences
.
class Base{
private:
Preferences m_preferences;
public:
...
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个派生类,它m_preferences
变为静态,因为我希望这个类的每个新实例共享相同的首选数据,无论发生什么.
class Derived: public Base{
private:
static Preferences m_preferences;
public:
...
}
Run Code Online (Sandbox Code Playgroud)
我收到了链接错误.
是否可以做我想做的事情(通过继承将非静态成员转换为静态成员)?
如果不是这种不可能性背后的哲学是什么?有计划吗?
谢谢,
此致
罗南
从两个声明之间的元编程前景来看,是否存在差异?
template<typename T>
struct matrix {
typedef matrix self_type; // or
typedef matrix<T> self_type;
};
Run Code Online (Sandbox Code Playgroud)
谢谢
我想找一个提供System.Windows.Form.Treeview的替代品.我需要以下改进:
我可能会忘记一些,但这些非常重要.由于我已经有一个使用标准Treeview的软件,我将考虑API差异.
两个团队正在开展两个不同的项目"A"和"B".某些文件对两个项目都是通用的,并存储在"Common"目录中.当项目A的发布日期临近时,项目A的团队不希望被团队"B"对"共同"的修改所困扰.
大多数人喜欢这类问题的分支机构,但事实并非如此.我想要的是给A队一个简单的可能性
1)忽略团队B对Common文件所做的所有修改
2)在A队成员之间共享Common文件的修改
以下是存储在svn上的A,B,Common目录:
Common
.. A
.. B
Run Code Online (Sandbox Code Playgroud)
我想要实现的想法是将"Common"目录设置为只读而不能更新到A队.如果他们真的想修改Common文件,他们必须将它们复制到目录"A"中并提交它们.
有没有一种方法,理想情况下是一种简单而优雅的方式来"做那种"?
注意:这是该问题的简化表述.不仅仅有两个团队,而且不仅仅是一个"共同"存储库
NB2:所有球队都使用tortoiseSVN
c++ ×5
templates ×2
c# ×1
inheritance ×1
memory-leaks ×1
static ×1
string ×1
svn ×1
tortoisesvn ×1
treeview ×1