Tag: 参考

为什么在C ++中引用不是“const”?

我们知道一个“constvariables”表示一旦赋值,就不能更改variables,如下所示: int const i = 1; i = 2; 上面的程序将不能编译; gcc提示错误: assignment of read-only variable 'i' 没问题,我可以理解,但下面的例子超出我的理解: #include<iostream> using namespace std; int main() { boolalpha(cout); int const i = 1; cout << is_const<decltype(i)>::value << endl; int const &ri = i; cout << is_const<decltype(ri)>::value << endl; return 0; } 它输出 true false 奇怪的。 我们知道,一旦引用绑定到一个名称/variables,我们不能改变这个绑定,我们改变它的绑定对象。 所以我想ri的types应该和i :当i是一个int […]

引用的项目在编译时会“丢失”

我有一个C#解决scheme,有两个项目:一个服务(主项目)和一个logging器。 该服务使用logging器中的类。 我在服务项目中添加了对logging器项目的引用。 在devise时,自动完成工作正常:logging器的类是可见的,我使用的引用被适当地着色。 我重build解决scheme,事情出错了。 这些引用不再被识别:“名称”Logging“在当前上下文中不存在”,并且这些类在自动完成中不再存在。删除和重新引用该引用使我回到使自动完成的标识符可见的基本状态。 我已经重新启动,清除所有的caching,确保这是我的机器上运行的VS 2010的唯一实例。 有什么明显的(显然),我失踪了?

在C ++中传递指针

据我所知,没有理由不允许在C ++中传递对指针的引用。 但是,我这样做的尝试是失败的,我不知道为什么。 这就是我正在做的事情: void myfunc(string*& val) { // Do stuff to the string pointer } // sometime later { // … string s; myfunc(&s); // … } 我得到这个错误: 不能将参数1从“std :: string *”转换为“std :: string *&'

为什么这不是抛出一个NullPointerException?

需要澄清以下代码: StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; referToSample.append("B"); System.out.println(sample); 这将打印B以便certificatesample和referToSample对象引用相同的内存引用。 StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; sample.append("A"); referToSample.append("B"); System.out.println(referToSample); 这将打印AB也certificate相同。 StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; referToSample = null; referToSample.append("A"); System.out.println(sample); 显然这将抛出NullPointerException因为我试图调用一个空引用append 。 StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; referToSample = null; sample.append("A"); […]

我应该通过const参考传递一个std ::函数吗?

比方说,我有一个函数,它需要一个std::function : void callFunction(std::function<void()> x) { x(); } 我应该通过由const参考x ? void callFunction(const std::function<void()>& x) { x(); } 这个问题的答案是否会根据函数做什么而改变? 例如,如果它是一个类成员函数或构造函数,它将std::function存储或初始化为成员variables。

删除未使用的引用(!=“using”)

我如何在我的项目中查找和删除未使用的引用? 我知道你可以很容易地删除vs 2008中的使用语句,但是这并不能删除你的项目中的实际引用。 被引用的dll仍然会被复制到你的bin / setup包中。

从属DLL不被复制到Visual Studio中的生成输出文件夹

我有一个视觉工作室解决scheme。 我在解决scheme中有很多项目。 有一个主要项目是启动和使用其他项目。 有一个项目说“ProjectX”。 其参考被添加到主项目。 ProjectX引用另一个.NET dll(比如说abc.dll),它不是解决scheme的一部分。 现在这个abc.dll应该被复制到主项目的bin / debug文件夹中,但是它不会被复制到那里。 为什么它不被复制,任何已知的原因?

如何将指针转换/转换为C ++中的引用

我怎样才能将一个指针( Object *ob )传递给一个函数,该函数的原型是void foo(Object &) ?

哪个更好,返回值还是输出参数?

如果我们想从一个方法中获得一个值,我们可以使用如下的返回值: public int GetValue(); 要么: public void GetValue(out int x); 我不是很了解他们之间的差异,所以不知道哪个更好。 你能解释一下吗? 谢谢。

我可以在Java中通过引用传递参数吗?

我想要类似于C#的ref关键字的语义。