C++版本的java这个.在课堂上
C++ version of java this. in classes
可能重复:
C++相当于Java这个
java的this的c++版本是什么?:
class javaObj{
private String name;
public void setName(String name)
{
this.name = name;
}
}
我发现在c++中唯一有效的是:
class cppObj
{
private:
string name;
public:
void setName(string name);
};
void cppObj::setName(string name)
{
cppObj::name = name;
}
我必须使用cppObj::吗。等价于c++?
Java的C++等价物如下:
this->name = name;
这篇文章提出了另一种语法:
(*this).name = name;
C++等价物是this
指针。
this->name = name;
这种操作更常见的是执行以下操作:
void cppObj::setName(const string& name)
{
name_ = name;
}
其中,成员变量以下划线作为后缀,参数由const
引用传入(不复制string
的值(。这里没有歧义,并且不需要this
指针。
this
指针。等效代码为:
void cppObj::setName(string name)
{
this->name = name;
}
然而,你可以增强你的代码:
class cppObj
{
private:
std::string name_; // better naming style to distinguish class member with other variables
public:
void setName(const std::string& name); // pass by reference to elide the unnecessary copy
};
void cppObj::setName(const std::string& name)
{
name_ = name; // not necessary to have to use `this->` pointer syntax
}
像java,this,但是"->"而不是".";
- IBM C++for AIX:this指针(仅限C++(
- 教程网站:C++this指针
相关文章:
- 有人能分解一下这个c++模板的语法吗
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 为什么在这个代码结束循环中没有得到结束
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何在BST的这个简单递归实现中消除警告
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 这个指针在c++中的用法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 书中的这个例子不好吗
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 为什么这个 c++ 代码打印出长度 5,当我打印出字符串时,程序会自动终止?
- 为什么这个音频包络不能通过开关的情况?
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 为什么 gcc 编译这个而 msvc 没有
- 这个函数哪里出错了
- 有人能帮我理解这个c++代码吗
- Qt - 在课堂上连接 - 出了点问题 - 这个
- 我的老师在课堂上用这个函数作为例子,但我不在场。有人可以帮助我,只是解释它的作用吗?
- 我为课堂编写了这个汉明编码代码.为什么这么慢