473,473 Members | 2,109 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

error C4430: missing type specifier - int assumed. Note: C++ does not support default

34 New Member
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
err how do i fix that error?

for example given to this section of code..
Expand|Select|Wrap|Line Numbers
  1. Matrix::addMatrix(Matrix m1, Matrix m3)
  2. {
  3.     for(int a = 0; a < row; a++)
  4.     {
  5.         for(int b = 0; b < col; b++)
  6.         {
  7.             m3[a][b]=(m1[a][b] + m2[a][b]);
  8.         }
  9.     }
  10. }
  11.  
this is the header file..
Expand|Select|Wrap|Line Numbers
  1. #pragma once
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. #include "Matrix.h"
  6. using namespace std;
  7.  
  8. class Matrix
  9. {
  10. public:
  11.     Matrix(void);
  12.     ~Matrix(void);
  13.     void readMatrixFile(string FILENAME);
  14.     void addMatrix(Matrix m1, Matrix m3);
  15.     void displayMatrix();
  16.     void transposeMatrix();
  17.     void multiplyMatrices(Matrix m2, Matrix m3);
  18.  
  19. private:
  20.     int row;
  21.     int col;
  22.     /*m = new (double*)[10];
  23.     for(int i = 0; i < 10; i++)
  24.     {
  25.         m[i] = new double[10];
  26.     }
  27.     for(int j = 0; j < 10; j++...)
  28.     {
  29.         delete[] m[i];
  30.     }
  31.     delete[] m;*/
  32.     double m[][];
  33. };
  34.  

please help me.
thanks in advance :)
Jul 31 '08 #1
12 39079
arnaudk
424 Contributor
The variables 'row' and 'col' appear to be undeclared when you are using them. Maybe you mean this->row and this->col?
Jul 31 '08 #2
slizorn
34 New Member
The variables 'row' and 'col' appear to be undeclared when you are using them. Maybe you mean this->row and this->col?

the thing is i am using the row and col as a variable to be used by several matrices under the Matrix class..


i have posted the code below for yr kind reference
thanks
Jul 31 '08 #3
slizorn
34 New Member
Matrix.cpp file

Expand|Select|Wrap|Line Numbers
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include "Matrix.h"
  5. using namespace std;
  6.  
  7.  
  8. Matrix::Matrix(void)
  9. {
  10. }
  11.  
  12.  
  13. Matrix::~Matrix(void)
  14. {
  15. }
  16.  
  17.  
  18. Matrix::readMatrixFile(string FILENAME)
  19. {
  20.     const string filename(FILENAME);
  21.     ifstream file(filename.c_str());
  22.     string line;
  23.     if (getline(file, line) && line == "<matrix>")
  24.     {
  25.         if (file >> line /* "rows" */ && file >> line /* "=" */ && file >> row && getline(file,line) /* ; */)
  26.         {
  27.             if (file >> line /* "cols" */ && file >> line /* "=" */ && file >> col && getline(file,line) /* ; */)
  28.             {
  29.                 for (int r = 0; r < row; r++)
  30.                 {
  31.                     for (int c = 0; c < col; c++)
  32.                     {
  33.                         int value;
  34.                         if (file >> value)
  35.                         {
  36.                             m[r][c] = value;
  37.                         }
  38.                     }
  39.                     cout << endl;
  40.                 }
  41.             }
  42.         }
  43.     }
  44. }
  45.  
  46.  
  47. Matrix::addMatrix(Matrix m1, Matrix m3)
  48. {
  49.     for(int a = 0; a < row; a++)
  50.     {
  51.         for(int b = 0; b < col; b++)
  52.         {
  53.             m3[a][b]=(m1[a][b] + m2[a][b]);
  54.         }
  55.     }
  56. }
  57.  
  58.  
  59. Matrix::displayMatrix()
  60. {
  61.     for(int i = 0; i < row; i++)
  62.     {
  63.         cout << "| ";
  64.         for (int j = 0; j < col; j++)
  65.         {
  66.             cout << m3[i][j] << " ";
  67.         }
  68.         cout << "|" << endl;
  69.     }
  70. }
  71.  
  72.  
  73. Matrix::transposeMatrix()
  74. {
  75.     Matrix m1, m3;
  76.     for(int k = 0; k < row; k++)
  77.     {
  78.         for(int j = 0; j < col; j++)
  79.         {
  80.             int save[2][2];
  81.             save[k][j] = m1[k][j];
  82.             m3[k][j] = m1[j][k];
  83.             m3[j][k] = save[k][j];
  84.         }
  85.     }
  86. }
  87.  
  88.  
  89. Matrix::multiplyMatrices(Matrix m2, Matrix m3)
  90. {
  91.     if(m1.col != m2.row)
  92.     {
  93.         cout << "These two matrices cannot be multiplied!!!" << endl;
  94.     }
  95.     else
  96.     {
  97.         for(int i = 0; i < m1.row; i++)
  98.         {
  99.             for(int j = 0; j < m2.col; j++)
  100.             {
  101.                 m3[i][j] = 0;
  102.                 for(int k = 0; k < m2.row; k++)
  103.                 {
  104.                     m3[i][j] = m3[i][j] + m1[i][k] * m2[k][j];
  105.                 }
  106.             }
  107.         }
  108.     }
  109. }
  110.  

another cpp file juz to store my int main() in..
Expand|Select|Wrap|Line Numbers
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include "Matrix.h"
  5. using namespace std;
  6.  
  7.  
  8. int main(int argc, char* argv[])
  9. {
  10.     Matrix m1, m2 ,m3;
  11.     char theOption, whichMatrixToDisplay;
  12.     string filename1, filename2;
  13.  
  14.     while(theOption != '5')
  15.     {
  16.         cout << "Please choose one of the following options from the menu below:" << endl;
  17.         cout << "---------------------------------------------------------------" << endl;
  18.         cout << "(1) Add two matrices" << endl;
  19.         cout << "(2) Multiply two matrices" << endl;
  20.         cout << "(3) Take transpose of a matrix" << endl;
  21.         cout << "(4) Display a matrix" << endl;
  22.         cout << "(5) Exit" << endl;
  23.         cout << "---------------------------------------------------------------" << endl;
  24.         cin >> theOption;
  25.  
  26.         switch(theOption)
  27.         {
  28.             case '1':
  29.                 cout << "You have chosen option 1!: Add two matices!" << endl;
  30.                 cout << "Please enter the two filenames that contain the two input matrices respectively!" << endl;
  31.                 cout << "Enter name of 1st file" << endl;
  32.                 cin >> filename1;
  33.                 cout << "Enter name of 2nd file" << endl;
  34.                 cin >> filename2;
  35.                 m1.readMatrixFile(filename1);
  36.                 m2.readMatrixFile(filename2);
  37.                 m2.addMatrix(m1, m3);
  38.                 cout << "The two matrices have been added together." << endl;
  39.                 cout << "Select (4): Display a matrix to view it." << endl << endl;
  40.                 break;
  41.  
  42.             case '2':
  43.                 cout << "You have chosen option 2!: Multiply two matices!" << endl;
  44.                 cout << "Please enter the two filenames that contain the two input matrices respectively!" << endl;
  45.                 cout << "Enter name of 1st file" << endl;
  46.                 cin >> filename1;
  47.                 cout << "Enter name of 2nd file" << endl;
  48.                 cin >> filename2;
  49.                 m1.readMatrixFile(filename1);
  50.                 m2.readMatrixFile(filename2);
  51.                 m1.multiplyMatrices(m2, m3);
  52.                 cout << "The two matrices have been multiplied with each other." << endl;
  53.                 cout << "Select (4): Display a matrix to view it." << endl << endl;
  54.                 break;
  55.  
  56.             case '3':
  57.                 cout << "You have chosen option 3!: Transpose a matrix!" << endl;
  58.                 cout << "Please enter the filename that contains the matrix to be transposed!" << endl;
  59.                 cout << "Enter name of file" << endl;
  60.                 cin >> filename1;
  61.                 m1.readMatrixFile(filename1);
  62.                 m1.transposeMatrix();
  63.                 cout << "The matrix has been transposed." << endl;
  64.                 cout << "Select (4): Display a matrix to view it." << endl << endl;
  65.                 break;
  66.  
  67.             case '4':
  68.                 cout << "You have chosen option 4!: Display a matix!" << endl;
  69.                 cout << "Please enter the option 1, 2 or 3 to display the respective matrices!" << endl;
  70.                 cin >> whichMatrixToDisplay;
  71.                 if(whichMatrixToDisplay == '1')
  72.                     m1.displayMatrix();
  73.                 else if(whichMatrixToDisplay == '2')
  74.                     m2.displayMatrix();
  75.                 else if(whichMatrixToDisplay == '3')
  76.                     m3.displayMatrix();
  77.                 cout << endl;
  78.                 break;
  79.  
  80.             case '5':
  81.                 cout << "You have chosen the option to Quit. Goodbye!" << endl;
  82.                 break;
  83.  
  84.             default:
  85.                 cout << " Sorry the option chosen is invalid. Please enter a valid option!" << endl << endl;
  86.                 break;
  87.         }
  88.     }
  89.  
  90.     return 0;
  91. }
  92.  

the code is as above..
please let me know if u need me to send u the file..
any help is appreciated..
thanks in advance..
Jul 31 '08 #4
arnaudk
424 Contributor
There's no need to double post your code.
I'm sorry, it appears that row or col are indeed declared, but m2 isn't. And unless you've overloaded operator[], which it appears you haven't, then

m3[a][b]=(m1[a][b] + m2[a][b]);

doesn't do what you think it does. I think you mean

m3.m[a][b]=(m1.m[a][b] + m[a][b]);

You might also want to check that the matrices being added are of the same rank, it makes no sense to add matrices of different ranks.
Jul 31 '08 #5
Savage
1,764 Recognized Expert Top Contributor
Watch out for your m1,m2 and m3 variables.
Make sure they are inside function scope before using them.

The problem is not only in that function but in MultiplyMatrices also.
Jul 31 '08 #6
slizorn
34 New Member
There's no need to double post your code.
I'm sorry, it appears that row or col are indeed declared, but m2 isn't.
well m2 will onli be defined based on the fact that m2 is the matrix that is passed through the readMatrixFromFile..
is there any other way i shd define the matrix???

and could ya also help me out with the constructor and destructor in the Matrix.cpp file? i am lost in that topic and it would be great to have this program up and runnign by saturday.. as i have already spent 1+ week doing this..

and is there a need for me to make this Matrix::displayMatrix() void???
well as u can see according to this post topic i get that error abt 10 times in my program and would really love to get rid of it...

plus i am at 31 errors currently..
can u see any other mistakes that i have done?

and please please help me do that constructor and destructor section.. or atleast give me a sample so i know wat to do....
Jul 31 '08 #7
slizorn
34 New Member
There's no need to double post your code.
I'm sorry, it appears that row or col are indeed declared, but m2 isn't. And unless you've overloaded operator[], which it appears you haven't, then

m3[a][b]=(m1[a][b] + m2[a][b]);

doesn't do what you think it does. I think you mean

m3.m[a][b]=(m1.m[a][b] + m[a][b]);

yeap u r right... the problem was that i took this exercise too lightly and according to another guy i ended up doin it as a C programm.. so i wanted to change it back to C++ cos thats wat i need to learn..

so i have made similar mistakes with the other eqns as well?

well accordin to the other post its the multiplyMatrix();
could someone check the following for me plz?

i changed it to m3.m[i][j] = m3.m[i][j] + m[i][k] * m2.m[k][j];
from m3[i][j] = m3[i][j] + m1[i][k] * m2[k][j];

and to m3.m[i][j] = 0; from m3[i][j] = 0;

correct????
Jul 31 '08 #8
slizorn
34 New Member
Watch out for your m1,m2 and m3 variables.
Make sure they are inside function scope before using them.

The problem is not only in that function but in MultiplyMatrices also.

fixed that problem :) thanks

can/do u see any other silly mistakes that i have made???
and how to do the constructors and destructors bit under the Matrix.cpp file????
thanks in advance :)
Jul 31 '08 #9
arnaudk
424 Contributor
Writing an constructor/destructor is very easy, once you know what they do. But you will never manage to write your matrix class properly until you understand what they are for.
In a nutshell, the constructor creates the object in the memory, optionally setting it up with any supplied arguments, it initializes the object's internal variables. The destructor doesn't usually do much (it does causes things to happen behind the scenes), but you do need to make sure that any 'new' in the constructor is matched by a corresponding 'delete' in the destructor to avoid memory leaks.
You really need to read up a bit on rudimentary C++, I'd take some time to do that first before carrying on.
Jul 31 '08 #10
slizorn
34 New Member
Writing an constructor/destructor is very easy, once you know what they do. But you will never manage to write your matrix class until you understand what they are for.
In a nutshell, the constructor sets up the object with the supplied arguments, it initializes the object's internal variables. The destructor doesn't usually do much (it does causes things to happen behind the scenes), but you do need to make sure that any 'new' in the constructor is matched by a corresponding 'delete' in the destructor to avoid memory leaks.
You really need to read up a bit on the rudimentary C++, I'd take some time to do that first before carrying on.

i will follow yr advice...
i will read up on the rudimentary C++...
also do u reckon i will need to use the new and delete in this program?
i think the onli reason i shd be using it is if the size is unknown...
but if we can define the maximum size of the matrix to be 10 by 10 then we shd be able to do it right? but how?
Jul 31 '08 #11
Studlyami
464 Recognized Expert Contributor
Your function definitions in Matrix.cpp needs to include the return type. The error is telling you that C++ does not support a default return type so you have to specify one.
Expand|Select|Wrap|Line Numbers
  1. Matrix::addMatrix(Matrix m1, Matrix m3)
  2.  
  3. needs to be changed to
  4.  
  5. void Matrix::addMatrix(Matrix m1, Matrix m3)
  6.  
You will need to do that to all your other function calls, but not on the constructor or destructor.
Jul 31 '08 #12
slizorn
34 New Member
Your function definitions in Matrix.cpp needs to include the return type. The error is telling you that C++ does not support a default return type so you have to specify one.
Expand|Select|Wrap|Line Numbers
  1. Matrix::addMatrix(Matrix m1, Matrix m3)
  2.  
  3. needs to be changed to
  4.  
  5. void Matrix::addMatrix(Matrix m1, Matrix m3)
  6.  
You will need to do that to all your other function calls, but not on the constructor or destructor.

thanks :D
i have reduced the errors to just 9 now...
they are as follows:
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.h(32) : error C2087: 'm' : missing subscript
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.h(32) : warning C4200: nonstandard extension used : zero-sized array in struct/union
1> Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(67) : error C2676: binary '[' : 'Matrix' does not define this operator or a conversion to a type acceptable to the predefined operator
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(82) : error C2676: binary '[' : 'Matrix' does not define this operator or a conversion to a type acceptable to the predefined operator
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(83) : error C2676: binary '[' : 'Matrix' does not define this operator or a conversion to a type acceptable to the predefined operator
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(83) : error C2676: binary '[' : 'Matrix' does not define this operator or a conversion to a type acceptable to the predefined operator
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(84) : error C2676: binary '[' : 'Matrix' does not define this operator or a conversion to a type acceptable to the predefined operator
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(92) : error C2228: left of '.col' must have class/struct/union
1> type is 'double [][1]'
1>c:\users\slizorn\documents\visual studio 2008\projects\exercise2\matrix.cpp(98) : error C2228: left of '.row' must have class/struct/union
1> type is 'double [][1]'
Jul 31 '08 #13

Sign in to post your reply or Sign up for a free account.

Similar topics

3
by: John | last post by:
Hi, I am working on a legacy code. Following is a line of the code which complies with Visual C++.NET 2003 but not with Visual C++ 2005: for ( int i = 0; i < (const)(X.size()); i++ ) {}// X is...
0
by: Jigar.Patel | last post by:
I have simple remoting server exposing following simple method. When I try to add webreference to this server in another project by serveraddresss?wsdl, it gives me following error: Custom tool...
2
by: darko | last post by:
ok, i'm just starting out, with c++ and i downloaded some wideos, i'm working on VS.NET 2005, and hthe first script is helloworld #include <iostream> main() { std::cout << "Hello World"; }...
1
by: Bit Byte | last post by:
The following function pointer declarations used to compile without any problems in VS7.1, now when I try to compile in VS8, I get a C4430 error. Anyone knows why, and how to fix it (without using...
2
by: LifeStory via DotNetMonster.com | last post by:
Hi all, Currently I am working in Visual C++ using .Net Studio 2005, I have defined a vector of integers in an .h file (class definition), after compilation the following error appears: Error...
2
by: im2cre8iv | last post by:
Here is my code where I am receiving the error: #include <fstream> #include "BinaryTree.h" using namespace std; Node* BinaryTree::MakeTree(ifstream& infile) { char name; infile>>name;
1
by: pra1983 | last post by:
can any one can help i am getting an error saying "missing type specifier - int assumed in line 332" but my line of that part are.... 332: getchar(); 333: getchar(); 334: for( i=0 ;...
1
by: Dean Evans | last post by:
Hi, This is my first OOP in C++ and having lots of probs. Below is an abstract class for an abstract factory problem. I get the compiler error as shown in the heading. Thanks for any tips ...
1
by: ibjou | last post by:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int. That´s the answer I get when program is compiled. How can I fix that error? Here you have the .cpp...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.