C++ 在c+中获取错误+;从int到非标量类型的转换';点';:

C++ 在c+中获取错误+;从int到非标量类型的转换';点';:,c++,c++14,C++,C++14,1.在这段代码中,我想构造一个点类型的数组,并将每个索引的值初始化为1,2 我可以实现以下代码吗 2.如果以下代码不起作用,正确的方法是什么 #include<iostream> using namespace std; class point { private: int x,y; public: point(int a,int b) { cout<<"constructor called here"<<endl;

1.在这段代码中,我想构造一个点类型的数组,并将每个索引的值初始化为1,2

我可以实现以下代码吗

2.如果以下代码不起作用,正确的方法是什么

#include<iostream>
using namespace std;
class point
{
 private:
   int x,y;
 public:
   point(int a,int b)
   {
       cout<<"constructor called here"<<endl;
       x=a;
       y=b;
   }
};

int main()
{
point p[2]{(1,2),(1,2)}; 
}
#包括
使用名称空间std;
类点
{
私人:
int x,y;
公众:
点(点a,点b)
{

您应该使用
{}
而不是
()

或使用类名:

point p[2]{point(1,2), point(1,2)}; 

使用副词
{}
而不是
()

显示点有多种方式,例如创建函数:

  • 它只显示类成员:1

void display(){std::coutokay但是如何打印p[1]???我曾尝试在类中编写一个单独的打印函数,该函数不提供任何内容。只需创建一个接受点类型对象的函数并使用cout。在main中调用该函数。这就是问题所在?创建自由函数take point或使用不带参数的成员函数都没有问题。因此调用
display(p[0]);
p[0]。display()
。您已经这样做了,所以我通过传递对象发布了一个替代方案。我将编辑可能的选项列表,等等。
friend
display
以允许
显示(p[0])
静态
point::display(p[0])
@walnut啊,我明白了。我想知道我的方法是否错了。我同意没有必要提供两次论证。谢谢!@Jarod42在walnut的观点之后,我理解你为什么给我这些选择。谢谢,希望现在它是正确的:)也许p[2]={(1,2),(1,2)};?如果这解决了你的问题,你的问题可能是重复的
point p[2]{point(1,2), point(1,2)};