class Point3d
{
public Point3d(int a ; int b){...}
// ^这里应该是逗号
}
{
public Point3d(int a ; int b){...}
// ^这里应该是逗号
}
解决方案 »
- 用正则表达式验证输入用户名的合法性,求大神指导
- NPIO操作Excel文件。
- 再来一个问题,打印图片时怎样自动缩放?
- 小妹请教各位前辈如何扑获DataGrideView选中行问题!
- 一个事件委托的问题,难道CSDN上没人能解决吗
- DataGridView 自定义按钮列的直接显示问题
- 怎样将如"香港(Hong Kong)"这样的数据替换成"Hon Kong"呢?只保留括号内的数据就可以了.
- treeview 里面递归增加节点应该怎么做?
- 痛苦得不想活,程序在运行时象死了一样
- XXXCMS源码下载
- 请问哪个类可以获取系统目录(如Window ,System32)等?
- 请问装上.net的机器能运行老的.asp程序?大哥帮忙啊
你的构造函数定义了两个参数,而你调用时切只传入了一个,当然不可以了public Point3d(int a ; int b){...}public Point3d[] p=new Point3d[10];//[]应该是()吧
调用的是缺省构造函数,而这里没给出来
p[0],p[1],p[2]....p[10]赋初值。
就你写出的程序来说,在class B初始化的时候,p被初始为
一个class Point3d的数组。但p[0],p[1]没有被初始。
如我修改的程序,是可以运行的。
using System;namespace formytest
{
class Point3d
{
public int A;
public int B;
public Point3d(int a,int b)
{
A=a;
B=b;
}
} class B
{
public Point3d[] p=new Point3d[10];
public B()
{
for(int i=0;i<10;i++)
p[i]=new Point3d(i,i);
}
}
class test
{
public static void Main()
{
int i=0;
B b=new B();
Console.WriteLine(b.p[3].A);
}
}
}
可以把Point3d改成public的,或者把p的定义改成internal的。
{
public Point3d(int a ; int b){...}//老大里面是,逗号。******
}class B
{
static void Main()
{
public Point3d[] p=new Point3d[10];
for(int i = 0 ;i<10;i++)
{
p[1] = new Point3d(i,i+1);
}
}
}
和c++一样,当你不提供构造函数时候,编译器会为你自动生成一个不带参数的
构造函数:Point3d{},而此时你提供了构造函数,编译器就不会为你自动生成构造函数了,所以你必须自己写一个不带参数的构造函数,才能保证:
public Point3d[] p=new Point3d[10];
有相应的构造函数可以调用,ok?