我目前在Unix环境中使用C/C++,并且是Linux环境的新手.我想学习Linux操作系统并学习C#作为我职业生涯的下一级编程语言.
我决定把Ubuntu Linux放在笔记本电脑上.但我不确定我们是否可以在Linux环境中编写,编译和运行C#程序.
我认识的唯一一个用于C#的IDE是MS Visual Studio.在Linux环境中有没有可能在C#中工作的方法?
如果我没有其他选择,我将在我的笔记本电脑上安装两个操作系统 - Vista用于学习C#,Linux用于其他操作系统.
经过长时间的差距,我正在刷新cpp,试图理解运算符重载方法.我试图重载"operator <<"来输出对象的成员.但是如果不使用朋友功能,我无法这样做.我正在寻找一种不使用友元功能的方法.
这是我的班级def:
class Add{
private:
int x;
public:
friend ostream& operator<<(ostream& ostr, Add const& rhs); //Method 1
void operator<<(ostream& ostr); //Method 2
};
Run Code Online (Sandbox Code Playgroud)
功能实现
//Method 1
ostream& operator<<(ostream &ostr, Add const& rhs)
{
ostr<<rhs.x;
return ostr;
}
//Method 2
void Add::operator<<(ostream& ostr)
{
cout<<" using operator<< \n";
ostr<<x;
}
Run Code Online (Sandbox Code Playgroud)
来自main函数的调用
cout<<Obj_Add; //calls the Method 1
Obj_Add<<cout; //calls the Method 2
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,我想在不使用friend函数的情况下实现方法1类型调用.但是不知道,cpp是否有可能.我尝试了很少的实现,但都给了我编译错误.请帮助我理解我在这里缺少的观点.
我正在寻找关于指针的澄清.我在bordland c ++ 5.5.1中编译了以下代码,没有任何错误.但是,当我尝试执行时给出了一个核心错误.
int main ()
{
int x=10,y=20;
int &a=x;
int &b=y;
int *c;
int *d;
*c=x;
*d=y;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
基本上我试图创建两个引用变量(a,b)并分配两个变量(x,y).之后我创建了两个指针变量(c,d)并尝试分配相同的变量(x,y).这给了我错误的执行而不是编译.
我是否做错了,这不是指针变量的标准赋值.为什么指针赋值在此时失败了.请帮我理解这个.
第一次更新:
谢谢大家.首先,我了解到我正在研究C++特性(引用变量).其次,我需要在使用之前为指针变量分配内存.