I am trying to add matrices a and b. I am getting an error in the "add" function, probably because I have m[i] in it, and m is not an array. What is the correct way of writing the "add" member function here?
Also, although the "read" and "write" member functions of the class are working just fine, do you think there is a better way of writing them?
Code:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
const int rows=3;
const int columns=3;
I have been working on an assignment where I have to add three objects of a class Matrix. The class should have the flexibility to add more than two oprands without changing any operand on Left hand side of the '=' operator.
I'd like to start out by adding an array to a C++ class. I'd like to be able to reference the array using a class object that I create, for example:
Class is Stone.
Stone Bob is an instance of "stone" that I name "Bob".
"Bob.array[1] = "granite";" tells the compiler that the second element in the array (with the first being the zeroth element) is a string containing "granite".
I'll eventually want to extend this to an n x m matrix within the "stone" class that can be referenced as: Bob.matrix[1][3]="lignite";
I tried to make this work using a text again and again last night to no avail. My code is below.
NOTE: Since I am dynamically allocating memory space, I'd like to avoid memory leaks when using this class with dynamically allocated arrays and matrices. Not sure how to do this. Also need some insight into "destructor", and why my simple version reduced to a comment below doesn't seem to please the compiler.
CODE FOLLOWS:
Code: // AINOW.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <string> using std:: string; using std:: cout; using std:: endl; using std:: cin;
This is my code without malloc. I need to change the array size so there is no max size for each matrix. I must dynamically allocate space for all arrays used. So I need to use malloc to create my arrays. So I cant use int A[rows][cols].
Code:
/* This program asks the user for 2 matrices called A and B, as integers, and displays their sum, C. The max dimension of each matrix is 100. */ #include<stdio.h> // Construct function void construct() { int m, n, i, j;// Variables int first[100][100], second[100][100], sum[100][100];// Matrices variables
[Code]...
Im having a hard time understanding/using malloc. Should first, second, and sum be single pointers or double? How do I scan the matrix correctly? And how do I add them properly? Do I have to change my for loops?
Code:
/* This program asks the user for 2 matrices called A and B, as integers, and displays their sum, C. The max dimension of each matrix is 100. */ #include <stdio.h> #include <stdlib.h> // Construct function void construct()
I am trying to solve some random puzzles so I do not lose/forget c++. I never used hashtables in C++ and decided I needed to brush up. I am having in creating a hashmap that holds objects with a string as a key:
Code: #pragma once #include <iostream> #include <unordered_map> class WordCount
In this book, item 3 is about never treat arrays polymorphically. In the latter part of this item, the author talks about the result of deleting an array of derived class objects through a base class pointer is undefined. What does it mean? I have an example here,
Code: class B { public: B():_y(1){} virtual ~B() { cout<<"~B()"<<endl;
[Code] ....
This sample code does exactly what I want. So does the author mean the way I did is undefined?
#include <iostream> using namespace std; class superclass; class subclass1; class subclass2;
[Code] ....
As you can see I want to create a dynamically allocated storage of references to a parent class each of which can then point to a child class, how ever I do not know how to extract the child class out again from that array so i may access its variable b.
Let's say I have a Car object , and it contains inner Engine object.
Code: struct Car{ Engine mEngine; };
In order to initialize the engine object NOT by the default constructor (if it has any) , we use initialization semantics:
Code: Car::Car: mEngin(arg1,arg2,...) { other stuff here }
Now it gets tricky: Let's say a Car objects has 10 inner objects, each object has about 5 variables in it . Car is a base class for , e.g. , Toyota class. you don't want the Car class to have a constructor with 50 arguments. Can the inner objects of Car be initialized from the base class , e.g. Toyota?
Code: class Toyota: Car(...), mEngine(...), mGear(..) { ... };
The other options are: 1) like said , create a Car constructor which gets 50 arguments, then initialize Car as whole from Toyota - the code becomes less readable and less intuitive 2) Car constructor which get built-objects as arguments and initialize the inner objects with copy constructor . the code gets more readable but then you create many excess objects .
I have implemented matrix class using vectors. code is
template <class T> class CBSMatrix : public CBSVector< CBSVector<T> > CBSMatrix(long r,long c, T t) { setsize(r, c); init(t);
[Code] .....
Although i have implemented the cols() but things in it are confusing me specially this line "if(size()) return at(0).size();" and "CBSVector<T> v(cols());" this line in add row function is also troubling me. in main i have done some thing lyk CBSMatrix <int> mat(5,5,0); now how to put values in this matrix. How to put values in this template based and vector based wired matrix because first row is created in this and then cols are added to that row.
I'm working on a matrix class and I've hit a few snags. Here's what I've got so far:
Matrix.h
#include <iostream> #include <conio.h> using namespace std; class Matrix { private: int matrix[50][50];
[Code] ....
Where I have questions is in implementing the addition and subtraction bits into the class itself. I understand that I'm going to have to do a copy operation (this from reading in C++ Primer Plus 5th Edition). Right now I'm just after adding/subtracting as the rest will be variations on the same theme.
So, here it goes:
As I understand the problem, I need to pass my two matrices as arguments to an addition function. This is going to involve having to copy the values of the two existing matrices into temporary matrices within the addition function, then I'll add them, and store them in a new matrix which will be my return value. So...something like this:
int Matrix::matrixAdd(int R, int C, const Matrix & matrix1, const Matrix & matrix2) { int sum; Matrix matrix; for (int i = 0; i < R; i++)
[Code] ....
I do end up with errors there...C2240, and C2662. Again, I'm new to working through this, but that's what I've got. My idea is that I'm passing the maximum size of the array as defined by the user, in this case a 2x2 array, it'll cycle through and add up to that imposed limit...I went 2x2 because it's small enough that testing doesn't drive me up a wall.
I had written a "DLL" in VB.NET a year or two ago to read and set MP3 tags. I want to write this exact same library in C++ so I can convert it in my droid project, and to get a hands on introduction to C++. So far this attempt has been a total mind melt!
I am finally wrapping my head around .cpp and .h files so there is light at the end of this tunnel. Here is my problem now:
I wrote the VB project with properties for each tag in the MP3 file, then I could get and set them - easy stuff.
When I try this in C++ I get compile error: a property can only appear within the definition of a managed type. I can usually stumble through Google searches and figure out this type of stuff on my own, but this one is stumping me -- I think I am missing some fundamental stuff here.
My code:
// MP3Tags.h #pragma once; #include <string> using namespace std; using namespace System::IO;
I have an inventory array in a class called inventory. This class is in a different program. How do I access and add to this array for my main program?
I'm attempting to make a matrix class, and so far I've made a member that can make a vector of vectors, but I'm not sure how to go about resizing the vectors if need be.
EX: resizeArray(3,3) should return a 3x3 vector.
Also, for some reason when I call my default member, matrix(), I get an error that says.. "Request for member numrows in myMatrix, which is of type matrix<int>[][]"
#include <iostream> #include <vector> using namespace std;
I need an array of class objects but am unsure of how one might accomplish this. I have so far...
//element class driver code Element Arsenic(lowCeiling, highCeiling); Element Cadmium(lowCeiling, highCeiling); Element Chromium(lowCeiling, highCeiling); Element Copper(lowCeiling, highCeiling); Element Lead(lowCeiling, highCeiling); Element Nickel(lowCeiling, highCeiling); Element Molybdenum(lowCeiling, highCeiling); Element Mercury(lowCeiling, highCeiling); Element Selenium(lowCeiling, highCeiling); Element Zinc(lowCeiling, highCeiling);
void replace(string oldstring, string newstring) { int stroldstringpos=b.find(oldstring); b.replace(stroldstringpos,newstring.length(),newstring); }
i have 1 error in these function that i'm confused. imagine the newstring size is more big than the oldstring, how can change the string, but only change the oldstring and add what left? see these:
I am IT student and had a C++/C (oral + paper) exam today. One of the tasks was to write a 2D-Matrix (as the question said) class with following restrictions:
- No <string> header is allowed - Only Dtor needs to be implemented - No templates - Following should be possible:
Code: std::cout << mat1 + mat2 + "some randome string"; mat1 += mat2; So i did the following: In Matrix.h i wrote: Code: Class Matrix{ int rows, cols; char *arr[][];
[Code] .....
Now..this destructor made me loose some points since the Prof. said that it is not correct. The corrected version was:
Now, i agree on that error i made, but it is only in case we use the "new" keyword to reserve place dynamically for each string(for each char*). So this raised the question in my head about:
Since the following is allowed in C++
Code: char* str1 = "hello"; char* str2 = "you"; arr[1][3] = str1;//arr[1][3] was initialized to "_" without new keyword arr[6][0] = str2;//arr[6][0] was initialized to "_" without new keyword why would someone use the new keyword..
I mean like this:
Code: arr[1][3] = new char*[sizeof("sometext1")+1]; arr[1][3] = "sometext1"; arr[6][0] = new char*[sizeof("sometext2")+1]; arr[6][0] = "sometextw";
What is happening internally in C++ in both the cases(with and without new keyword)?
I realized a Matrix class to practice and I have a problem I can not solve! Here my problematic code:
Mtrx.h:
Code: template <class T> Mtrx::Mtrx(dim m, dim n, const bool random_constructed = false, const T min = static_cast<T>(0), const T max = static_cast<T> (10)) Mtrx.C
[Code] ...
And here the relative main section:
Code: Mtrx rand1 ( 5, 5, bool);// ok cout<<rand1<<endl;
Mtrx rand2 ( 7, 3, bool, -5, 20);// ok cout<<rand2<<endl;
Mtrx rand3 ( 7, 7, bool, 0., 15.);// compilation error: undefined reference to // "Mtrx::Mtrx<double>(unsigned long, unsigned, bool, double, double)" // collect2: error: ld returned 1 exit status
What I want to do is have an admin class which will hold all the employee objects, can add them, list and calculate salaries. I'm trying to make array of objects, not sure if it's right
here is the code
Code: #include <iostream> #include <string> using namespace std;
class Employee { public: Employee(string name, short type, int salary)
For a beginners C++ lab, I have a base class Employee and two derived classes HourlyEmployee and SalaryEmployee. In main, I have a vector defined as vector <Employee *> VEmp; It's then passed to a function to get the input, which works fine. But what I'm struggling with is another function with the header "printList(const vector <Employee *> & Ve)". It's supposed to loop through the vector and call the appropriate printPay function, which is a seperate print function inside each derived class. How do I loop through the vector and print it out? I was trying to do a for loop and something like "Ve[i].printPay();", but that doesn't work. So how would I do it?
Here's some snippets of the relevant code.
class Employee { .... virtual void printPay() = 0; }; class HourlyEmployee : public Employee {
i ran the following code in the latest version of code::blocks and it tells me that the objects cout and cin are not declared in this scope. what is the problem?
I used to use Turbo C++ 3.0 and i had no problem whatsoever with that compiler. But now i am trying to move to code::blocks but it is proving very very hard as all the standards have been changed.
I am a school student and thus, we had been told to practice on Turbo C++ 3.0 and now i am unable to unlearn it. Also, if i use printf in place of cout there is no error but i want to use cout as it is what i am comfortable working with.
#include<fstream> #include<conio.h> int main() { using namespace std; char name[20];
[Code] ....
Is there some document to which i can refer so as to get the latest C++ standards which is C++0x i believe?