我的C++知识有些零碎.我正在重新编写一些代码.我更改了一个函数来返回对类型的引用.在里面,我根据传入的标识符查找对象,然后返回对象的引用(如果找到).当然,如果我找不到对象,我会遇到要返回的问题,并且在环顾网络时,许多人声称在C++中返回"空引用"是不可能的.基于这个建议,我尝试了返回成功/失败布尔值的技巧,并使对象引用为out参数.但是,我遇到了需要初始化我将作为实际参数传递的引用的障碍,当然也没有办法做到这一点.我退回到通常只返回指针的方法.
我问了一位同事.他经常使用以下技巧,这是最新版本的Sun编译器和gcc都接受的:
MyType& someFunc(int id)
{
// successful case here:
// ...
// fail case:
return *static_cast<MyType*>(0);
}
// Use:
...
MyType& mt = somefunc(myIdNum);
if (&mt) // test for "null reference"
{
// whatever
}
...
Run Code Online (Sandbox Code Playgroud)
我一直在维护这个代码库,但我发现我没有足够的时间来查找我想要的语言的小细节.我一直在挖掘我的参考书,但这个答案让我望而却步.
现在,我在几年前开设了一门C++课程,其中我们强调在C++中,一切都是类型,所以我在考虑事情时会尽量记住这一点.解构表达式:" static_cast <MyType >(0);",在我看来,我们确实采用了字面零,将其转换为指向MyType的指针(使其成为空指针),然后应用解除引用运算符分配给引用类型(返回类型)的上下文,它应该为我提供对指针指向的同一对象的引用.这看起来像是向我返回一个空引用.
任何解释为什么这个工作(或为什么不应该)的建议将不胜感激.
谢谢,查克
我有一个添加到窗体的MenuStrip,并且在其中的一个下拉菜单中,有一个文本框。当我在文本框上按Enter键时,我要运行一个函数,然后关闭下拉菜单。我知道如何完成输入部分,但是我不知道如何关闭MenuStrip下拉菜单。
我正在使用python,并希望使用简单的api或regex来检查域名的有效性.根据有效性,我是语法有效性,而不是域名是否实际存在于互联网上.
我有一个TextBox和一个用于搜索数据集合的列表框.在列表框中搜索文本时,如果在列表中的任何位置找到匹配的字符串,则应以粗体显示为绿色.
例如.我有像"依赖属性,自定义属性,普通属性"这样的字符串集合.如果我在搜索文本框中输入"prop",则所有带有"prop"的三个(只有单词Prop)应该是粗体,其颜色应该是绿色.知道如何做到这一点?
列表框内的数据使用DataTemplate表示.
我有一个大小为130MB的应用程序。当我尝试安装其显示内存不足的错误时。但是我内部存储器的可用空间还剩170MB。如何安装此应用程序?该应用程序的大小很大,因为它包含许多媒体文件。在Motorolla droid中得到安装。但在Nexus One上,会出现此错误。
我一直在网上寻找答案,我的问题是:GUI框架如何工作?例如,Qt是如何工作的,是否有关于从头开始编写GUI框架主题的书籍或wibsites?并且框架还必须从操作系统GUI框架调用方法吗?
- 感谢任何一个花时间尝试回答这个问题的人,如果我拼错了任何东西,请原谅我.
例如:
#!/usr/bin/python
print "This is python."
print "<script type="text/javascript">
var pass_to_python = new Number(7)
</script>"
the_number = pass_to_python???
Run Code Online (Sandbox Code Playgroud)
如何在python中获取pass_to_python?
我有一个用户名= LICTowner.
我需要从LICTowner这个词得到前缀,即LICT.
如何分割单词并获得4个字母的前缀.
在asp.net中使用C#
我在我的文件中添加了一些const字符.我得到的错误是重复符号_xyz(说).它有什么问题,我怎么能摆脱这个问题.
const char* xyz = "xyz";
class Abc
{
public:
Abc()
{
}
};
Run Code Online (Sandbox Code Playgroud) 默认的补丁文件查看器很乱(即没有并排差异视图等).我尝试在"设置 - >统一差异查看器 - >自定义"中设置beyondCompare exe的路径,但是超越比较也与默认差异工具相同.有没有办法在补丁文件中至少允许并排差异?如果是这样,方法是什么?我的目的是允许通过电子邮件发送更改,以便在我提交之前对其进行审核:)
米沙勒
c# ×2
c++ ×2
python ×2
android ×1
api ×1
asp.net ×1
diff ×1
domain-name ×1
forms ×1
frameworks ×1
graphics ×1
javascript ×1
listbox ×1
menustrip ×1
regex ×1
string ×1
tortoisesvn ×1
windows ×1
wpf ×1