変数がy1のときだけ、エラーが出ます。 – プログラミング – Home

変数がy1のときだけ、エラーが出ます。
 
通知
すべてクリア

[解決済] 変数がy1のときだけ、エラーが出ます。


BBA
 BBA
(@BBA)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

はじめまして。BBAです。

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <glui.h>
#include glut.h
#include <math.h>
#pragma comment (lib,glui32.lib)
#define PI 3.14159
using namespace std;
/* グローバル変数としてx1, y1, y2を定義 */
double x1 = 0.0;
double y1 = 0.03;
double y2 = 0.0;

void CUBE(double X0, double X1, double Y0, double Y1, double Y2, double Z0,
double Z1)
{
/* 直方体を作るプログラム */
}
void equation(void)
{
        ・
        ・
        ・
 CUBE(-1.0, 0.0, 0.0, y1, 0.0, 0.0, 1.0)
 CUBE(0.0, x1, 0.0, y1, y2, 0.0, 1.0)
        ・
        ・
        ・
}
int main(int argc, char* argv[])
{
        ・
        ・
        ・
 cout << x1, y1, y2を入力してください。\n;
 cin >> x1 >> y1 >> y2;
        ・
        ・
        ・
}

error C2365: 'y1' : 再定義; 以前の定義は '関数' でした。
error C2664: 'CUBE' : 4 番目の引数を 'double (double)' から 'double' に変換でき
ません。コンテキストはオーバーロードされた関数の非不明瞭を考慮しません。
error C2664: 'CUBE' : 4 番目の引数を 'double (double)' から 'double' に変換でき
ません。コンテキストはオーバーロードされた関数の非不明瞭を考慮しません。
error C2679: 二項演算子 '>>' : 型 'double (__cdecl *)(double)' の右オペランドを
扱う演算子が見つかりません (または変換できません)。

このように、main関数の中でcin >> x1 >> y1 >> y2として値を入力させようとしている
のですが、なぜかy1だけがエラーが出てしまいます。
y1という関数を作ったわけではないのですが。
y1の部分をyやyyyなどに変更するとエラーが出ません。

この原因お分かりになりますでしょうか?

環境:WinXP Microsoft Visual Studio .NET 2003 MFC


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

y1はmath.hにあるBessel 系関数らしいです。
→変数名y1をあきらめるのが最善。


返信引用
BBA
 BBA
(@BBA)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

Blueさんありがとうございます。
ベッセル関数についてネットで調べたところ、y0,ynもダメなようですね。
y2, y3, y4・・・は使えるんですよね?


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

y2 y3 は使える
j0 j1 jn は使えない (j2 j3 は使える)

C++ 限定でよければ無名 namespace を使うことで j0 j1 や y0 y1 という名前を
グローバル変数というか無名 namespace 内静的変数として使える。

まあグローバル変数を使わないのが一番。
本当にそんな(意味のわからない名前の)グローバル変数が必要かどうかを再検討。


返信引用
BBA
 BBA
(@BBA)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

tetrapodさんありがとうございます。

とても助かりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました