C++ 对参数使用不同的类

c++ using a different class for an argument?

本文关键字:参数 C++      更新时间:2023-10-16

我有一个简单的问题,当我编写一个类的.h文件并想传递不同类类型的参数时,应该怎么写?

例如:

#include "y.h"
class x
{
public :
void method( y &)
};

void method,对吗?还是应该写成y::y&?当它在.cpp文件中实现时?

如果你的类被称为y那么你写的是正确的。::语法用于引用命名空间或其他类中的名称。在这种特殊情况下,y::y指的是y的构造函数,而不是类本身。

在实现 (.cpp) 文件中对此没有更改 - 在这两种情况下,名称y引用同一个类。

如果不考虑限定符易失性,那么你有以下几种可能性

void method( y &);
void method( const y &);
void method( y );
void method( const y * );
void method( y * );

声明

void method( const y );

声明

void method( y );

此外,方法本身可以具有限定符 const。例如

void method( y &) const;

此外,如果类名将被隐藏,那么您可以使用详细描述的名称。例如

void method( class y &) const;

本声明

void method( y::y &);
是正确的,前提是左 y 是命名空间

的名称,右 y 是命名空间中定义的类的名称。